zoj 2136 Longest Ordered Subsequence 最长上升子序

摘要: 题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2136经典DP,划分为这样的子问题: 记录 length【k】为,以ak为最后一个元素的最长上升子序的长度,那么求这个值时,只需要取出这个数之前的比它小的数,看它的length是多少,取出有最大的length那个。m记录的是之前子问题的length,初始化为0。这样实现的结果就是,有length【0】就可以求出length【1】,接着可以求出length【2】......。这样暴力是 O(2^n)的问题(所有的子集都拿出来考察)就变成O(n^2)了最后的结果是所 阅读全文
posted @ 2013-07-26 01:11 814jingqi的ACM 阅读(75) 评论(0) 推荐(0) 编辑

hdu 4602 Partition 快速幂,构造递推关系 (13多校#1,1003)

摘要: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4602解题思路: 1设对n的分解中k出现的次数是 g(n,k) ,首先发现k从n往下举例的时候,前几项都是一样的(待证明) 然后只需要知道对n的划分中,一共有多少个数。 考虑将n分成k个数,有C(n-1,k-1)种分发,于是总个数就是sigma k*C(n-1,k-1) ; 2 利用kC(n,k)=n C(n-1,k-1) 很容易求和 ,找到了a(n)=sigma...- S(n-1) ;再列举一项相减就可以了。 最后得到a(n)=(2^(n-3) ) * ... 阅读全文
posted @ 2013-07-25 23:25 814jingqi的ACM 阅读(119) 评论(0) 推荐(0) 编辑

hdu 4608 I-number(13多校#1 ,1009)

摘要: 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4608题目分析: 大整数,可以考虑java BigInteger(好像tle?) 这个题的思路是逐步调整,构造一个例子,得到一个比较小的范围,然后暴力就可以了。 我们首先把这个整数加到末尾是0,进位完成以后,取出除了最后一位,每一位求和,看mod10 余数多少,不管是多少,直接用10-这个数(如果得到10改成0),加到最后一位肯定不会进位,构造完成。这样会发现我们要找的数和原来的数之间的差距不会超过18,然后一一暴力就可以。注意要点:1如果这个数不行,还有恢复数组原来的状态 (r... 阅读全文
posted @ 2013-07-25 02:54 814jingqi的ACM 阅读(123) 评论(0) 推荐(0) 编辑

zoj 2316 Matrix Multiplication(2-D)

摘要: 题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1316题目思想:首先 设新矩阵为c【n】【n】, 则 c【i】【j】=sigma aT【i】【k】*a【k】【j】=sigma a【k】【i】*a【k】【j】; 现在题目要求 sigama sigma c【i】【j】,三重求和,角标之间没有限制,于是可以将k拿到最外层,这样对内层求和时,k不变,可以看做关联矩阵某一行任意两个数相乘,显然只用考虑两个数都是1的情形, 这样对某个1 ,1*(1+1+...+1)括号中的数恰好是 顶点k的度数,而恰好有这么多个算式,于是固 阅读全文
posted @ 2013-07-25 02:18 814jingqi的ACM 阅读(119) 评论(0) 推荐(0) 编辑

zoj 2313 Chinese Girls' Amusement(2-A)

摘要: 题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1313这题的理论就是当且仅当(a,m)=1 时 a*k+b (1#includeusing namespace std;void jminus(int a [],int n,int b){ a[n-1]-=b; for(int i=n-1;i>0;i--) { if(a[i]>size; for(int l=0;l>p; int n=strlen(p); int a[n]; for(int i=0;i<n;i++) a[i]=p[i]- 阅读全文
posted @ 2013-07-25 01:58 814jingqi的ACM 阅读(134) 评论(0) 推荐(0) 编辑

13hdu多校联合练习#1

摘要: 题目地址:http://acm.hdu.edu.cn/listproblem.php?vol=37(4600-4610)题解报告 阅读全文
posted @ 2013-07-24 22:17 814jingqi的ACM 阅读(79) 评论(0) 推荐(0) 编辑

zoj 2592 Think Positive(5-F)

摘要: 题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1592要点:1 结果就是所有数的和(如果小于0,就返回0) 2将所有的数排在圆周上(从a1到an顺时针存放),这样所谓的j,就是向顺时针扫描 不管扫描到哪里扫过的和必须都是正数。 在1和-1数目相等的时候刚好是0个j满足,然后增加一个1时可以用反证法证明恰好存在一个j,用数学归纳法可以证明: 设和为n时,j的个数为f(n),f(n)=n#includeusing namespace std;int main(){ int size; cin>... 阅读全文
posted @ 2013-07-23 00:42 814jingqi的ACM 阅读(141) 评论(0) 推荐(0) 编辑

poj 3233 Matrix Power Series 矩阵 快速幂 两次二分

摘要: 题目地址:http://poj.org/problem?id=3233思想: 1模仿快速模幂法 ; 给矩阵写一个快幂 2 但是k太大 直接求和还是会tle 这个很像等比数列求和 但是可以递归用二分求,理论基础如下 : 求和二分:A+A^2+A...+A^(2k+1)= A+A^2+...+A^k+A^(k+1)+A^(k+1)*(A+A^2+...+A^k). 3 矩阵用结构体存储很好用呀 之前用int **存好像容易超内存 或者时间效率不高 4递归函数设计时,把调用递归的放在前面,这样实现自动回溯,而且不会爆栈 5 用g++... 阅读全文
posted @ 2013-07-22 22:20 814jingqi的ACM 阅读(108) 评论(0) 推荐(0) 编辑

13暑假集训 5 总结

摘要: 比赛地址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26270题解:http://blog.watashi.ws/705/andrew-stankevich-5-solution/最近状态水的1b啊。。 阅读全文
posted @ 2013-07-22 21:08 814jingqi的ACM 阅读(74) 评论(0) 推荐(0) 编辑

zoj 2674 Strange Limit 欧拉定理应用 (3-E)

摘要: 1 a,m和不一定互素的时候,欧拉定理的应用 a^phi(m)%m=a^(k*phi(m) ) %m (证明用到中国剩余定理)2 发现A 满足的同余式以后 ,由于phi(m)#include#includeusing namespace std;typedef long long inta;int p[3000];vector v;void make_prime(){ for(int i=2;i s; for(int i=0;i>p>>m) { if(tag==1) coutlong long f[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40 阅读全文
posted @ 2013-07-22 03:08 814jingqi的ACM 阅读(115) 评论(0) 推荐(0) 编辑