摘要:
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4608题目分析: 大整数,可以考虑java BigInteger(好像tle?) 这个题的思路是逐步调整,构造一个例子,得到一个比较小的范围,然后暴力就可以了。 我们首先把这个整数加到末尾是0,进位完成以后,取出除了最后一位,每一位求和,看mod10 余数多少,不管是多少,直接用10-这个数(如果得到10改成0),加到最后一位肯定不会进位,构造完成。这样会发现我们要找的数和原来的数之间的差距不会超过18,然后一一暴力就可以。注意要点:1如果这个数不行,还有恢复数组原来的状态 (r... 阅读全文
摘要:
题目地址: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的度数,而恰好有这么多个算式,于是固 阅读全文
摘要:
题目地址: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的度数,而恰好有这么多个算式,于是固 阅读全文
摘要:
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1313这题的理论就是当且仅当(a,m)=1 时 a*k+b (1
#include
using 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++)
... 阅读全文
摘要:
题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1313这题的理论就是当且仅当(a,m)=1 时 a*k+b (1
#include
using 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++)
... 阅读全文
摘要:
题目地址:http://acm.hdu.edu.cn/listproblem.php?vol=37(4600-4610)题解报告 阅读全文
摘要:
题目地址: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#include
using namespace std;
int main()
{ int size; ... 阅读全文
摘要:
题目地址: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#include
using namespace std;
int main()
{ int size; ... 阅读全文
摘要:
题目地址: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++... 阅读全文
摘要:
比赛地址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26270题解:http://blog.watashi.ws/705/andrew-stankevich-5-solution/最近状态水的1b啊。。 阅读全文