上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 182 下一页
摘要: 欧拉定理,对于正整数a,n,若gcd(a,n)=1,则有a^euler(n)=1(mod n)。快速幂取模算法,只要p*2在long long范围内都可以计算,对于算法中long long * long long的情况可能超界,但是我们可以用一种类似于快速幂的方法来进行次乘法计算,即快速幂是用乘法代替幂计算以便及时取模,而此算法则是用加法代替乘法计算及时取模,把快速幂中的乘法换成加法,平方换成乘2即可。题意:给出数字L,问一个各位数字都是8的L的倍数是否存在,若存在,输出其最小长度。分析:欧拉定理,我们可以列出方程(10^x - 1) / 9 = L * k / 8,推出(10^x - 1) 阅读全文
posted @ 2012-11-05 10:57 undefined2024 阅读(1117) 评论(0) 推荐(0)
摘要: 題意:一些骑士,他们有些人之间有矛盾,现在要求选出一些骑士围成一圈,圈要满足如下条件:1.人数大于1。2.总人数为奇数。3.有仇恨的骑士不能挨着坐。问有几个骑士不能和任何人形成任何的圆圈。分析:双连通分支。建图方法是将没有矛盾的骑士连边,求双连通分量(关于点的)。对于每个双连通分量,看是否存在奇环,若存在那么这个双连通分量中的任意两骑士都可以同时出现在一个奇环里。原因如下:因为每个不在那个奇环里的点都一定能找到两条连到奇环上不同节点的路径,然后奇环被分割为一个总数为奇数的节点串和一个总数为偶数的节点串,这时做出正确的选出和那一串构成环即可形成奇环。那么如何判断一个双连通分量是否存在奇环呢?用交 阅读全文
posted @ 2012-11-04 16:40 undefined2024 阅读(2318) 评论(0) 推荐(0)
摘要: 把所有串全排列,每次排列按顺序从左到右将各串叠加起来,叠加过程遵循最短原则。search(f, f+n, g, g+m);在f中查找g,返回第一个与g完全匹配的起始位置,若无法匹配则返回f+m。copy(f,f+n,g);将f中的n个元素拷贝到g中。View Code #include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 10#define 阅读全文
posted @ 2012-11-04 15:59 undefined2024 阅读(216) 评论(0) 推荐(0)
摘要: 题意:给出一些圆盘,质量和面积成正比,把他们一层一层的按照规定的坐标罗起来,问到哪一层会不稳定。不稳定的意思就是说中间存在某一个圆盘,它上面的所有圆盘的质心在它的面积范围之外。题目对输出中的哪一层的k描述有误,实际输出的层号比题中描述的小1。分析:利用质心公式X=(X1*M1+X2*M2+ ... ... +Xn*Mn)/(M1+M2+ ... ... +Mn) ,Y=(Y1*M1+Y2*M2+......+Yn*Mn)/(M1+M2+......+Mn)用n^2的效率判断即可。View Code #include <iostream>#include <cstdlib> 阅读全文
posted @ 2012-11-02 19:53 undefined2024 阅读(231) 评论(0) 推荐(0)
摘要: 模拟,注意Justify模式的最后一行,无论有几个单词都要用Left方式输出。View Code #include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>using namespace std;#define maxn 505#define maxl 80#define max_len 75char word[maxn][maxl];char cmd[3];int n;int sum[maxn];int word_len[maxn];void input(){ 阅读全文
posted @ 2012-11-02 10:52 undefined2024 阅读(162) 评论(0) 推荐(0)
上一页 1 ··· 47 48 49 50 51 52 53 54 55 ··· 182 下一页