自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

imut zcy,I promise You.

C Y 默 默 前 行 !

  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 NOIP 金明的预算 ---- 依赖树形背包

同上题。#include #include using namespace std;const int maxn = 60;//总个数 const int maxm = 3200;//总钱数 int n,c;int x[maxn],w[maxn],v[maxn];int f[maxn][maxm];inline int dfs(int k,int

2013-11-20 20:39:25 1105

原创 CTSC 97 选课 ----树形依赖背包

树形依赖背包问题:给定n件物品和一个背包。第 i 件物品的价值是 wi ,其体积为 Vi ,但是依赖于第 Xi 件物品(必须选取 Xi 后能取 i ,如果无依赖则 Xi = 0),依赖关系形成森林,背包的容量为 C 。可以任意选择装入背包中的物品,求装入背包中物品的最大总价值。 Code:#include #include using namespace std;c

2013-11-20 20:36:13 1879 1

原创 HDU 3613 Best Reward ---- 拓展KMP

题意:给你个字符串S,要求把这个字符串分成两段T1,T2,每个字母都有一个对应的价值,如果T1,T2是回文串(从左往右或者从右往左读,都一样),那么他们就会有一个价值,这个价值是这个串的所有字母价值之和,如果不是回文串,那么这串价值就为0。问最多能获得多少价值?此题是个很好的例子,入门的最好不过。 SOL:(转自KuangBin)枚举扫描一遍extend数组,扫描到的当前位置之前为

2013-11-11 16:39:48 840

原创 HDU 4333 Revolving Digits-----拓展KMP

此题就是比较裸的拓展KMP。此SoL【转自KuangBin】:扩展KMP能求出一个串所有后缀串(即s[i...len])和模式串的最长公共前缀。于是只要将这个串复制一遍,求出该串每个后缀与其本身的最长公共前缀即可,当公共前缀>=len时,显然相等,否则只要比较下一位就能确定这个串与原串的大小关系。  至于重复串的问题,只有当这个串有循环节的时候才会产生重复串,用KMP的next数组求出最小

2013-11-11 13:21:00 830

原创 扩展KMP的讲解与应用

http://www.isnowfy.com/kmp-and-extend-kmp/    ------简单比较下KMP,扩展KMP和最小表示法http://3214668848.blog.163.com/blog/static/48764919200910152452182/  -----扩展KMP算法(Extend KMP)  http://duanple.blog.163.com

2013-11-11 12:29:29 1377

原创 SGU 105 Div 3 找规律

题意:就是找那个数列能整除3的个数。Sol:找规律即可。Code:#include using namespace std;int main(){ int n; while(~scanf("%d",&n)) { int ans = n/3*2; if(n%3) ans+=n%3-1; printf("%d\n",ans); } return 0;}

2013-11-08 12:21:37 767

原创 SGU 102 Coprimes ---- 欧拉函数、素数的应用&&GCD水题

题意:为求不大于N并与N互质的正整数的个数。我们把这样的两个正整数称为是互质的:当且仅当它们的最大公约数为1。欧拉函数:#include #include using namespace std;const int maxisp = 1000 + 10;const int maxp = 500 + 10;int num,n;int prime[maxp];int i

2013-11-08 11:43:51 968

原创 poj 2154 Color ----polya计数

题意:此题跟POJ 2409类似,只不过只考虑旋转,不考虑翻转;但是需要用到快速幂和欧拉函数的优化求解。/*旋转:顺时针旋转i格的置换中,循环的个数为gcd(i,n),每个循环的长度为n/gcd(i,n)。如果枚举旋转的格数i,复杂度显然较高。有没有好方法呢?可以不枚举i,反过来枚举L。由于L|N,枚举了L,再计算有多少个i使得0即gcd(i,n)=n/L。不妨

2013-11-07 10:03:59 587

原创 poj 1286 Necklace of Beads -----polya计数

题意:3种颜色的珠子串在一起两种置换(翻转和对称),问一共有多少等价类。(模版题)Code:#include using namespace std;inline int gcd(int a,int b){ return b?gcd(b,a%b):a;}long long sol(int n){ long long x=1; while(n--)

2013-11-06 22:51:37 774

原创 POj 2409 Let it Bead ----- polya计数

题意:给定颜色种数和环上的珠子总数,问有多少种染色方案(通过旋转和翻转相同的算同一种)。这读不出来是硬伤。。。。两种情况讨论:1.旋转:循环节数  GCD(N,I);2.翻转:  N%2 == 1  时,N个循环节数  (N+1)/ 2 个循环群。                 N%2 == 0  时,N / 2 个循环节数  (N+2)/ 2    , N / 2 个循环节数

2013-11-06 18:00:34 645

原创 初识组合数学

看了好久的组合数学,还是看不懂。>_好在先把理论背下来吧。(证明看的云里雾里的受不了了)  Burnside 定理 :不同等价类的个数 = 每个置换对应的一阶循环的个数之和/ 总的置换数!  Polya 定理: 不同等价类的个数 = m的n次方之和,m指的就是着色的种类,n是指的每个置换所对应的循环节的个数!得好好看看置换、群、置换群这些东东。还有一片很NB的论文:

2013-11-06 14:46:42 792

原创 HDU 1022 栈的基本操作应用

首先先介绍下C++ STL 中的 stack. stack也是程序设计中常常用到的数据容器,STL为我们提供了stack的实现,因此在使用stack时必须包含头文件#include,并使用统一命名空间。1.声明一个stack   stack s1;   stack s2;   stack  s3;stack模板类需要2个模板参数,一个为元素类型,

2013-11-04 23:53:44 880

转载 SGU 101

#include #include using namespace std;const int maxn = 12;const int maxm = 120;int vis[maxn][maxn],used[maxn];int match[maxn],f[maxn],num,n;//int num = 0;//标记输出队列//int matc

2013-11-04 09:48:57 619

2013年heu寒假集训练习赛AK--第4场

2013年heu寒假集训练习赛--第4场

2013-01-24

2013年heu寒假集训练习赛AK--第3场

2013年heu寒假集训练习赛--第3场

2013-01-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除