03 2017 档案

摘要:如果在你的电脑出现以下这种现象,则说明这篇文章适合你,否则不必理会。 适用于取余 比如求n!除以1000000007(被除数较大)的余数。 pascal: pascal输出不需要说明格式,而若式子运算过程中的值都在2^64范围内,在整型范围内,则结果输出无错误,不需要高精度。 c: 1.若式子运算过 阅读全文
posted @ 2017-03-30 21:59 congmingyige 阅读(485) 评论(0) 推荐(0) 编辑
摘要:win10: Win+R cmd:命令行程序 notepad:记事本 winword:word文档 calc:记事本 mspaint:画图 wordpad:写字板 阅读全文
posted @ 2017-03-30 20:09 congmingyige 阅读(169) 评论(0) 推荐(0) 编辑
摘要:Solution: 1.快速幂:数/矩阵 2.以证明1000000007是素数。 费马小定理: 若p是素数,gcd(a,p)=1,则a^(p-1)1(mod p)。 若a^b mod p 中b很大,则可以简化为a^b mod p=a^[b mod (p-1)] mod p 证明如下: b=t*(p- 阅读全文
posted @ 2017-03-30 19:02 congmingyige 阅读(684) 评论(0) 推荐(0) 编辑
摘要:1.退出调试 按Ctrl+C 2.退出while循环 比如 按Ctrl+Z 再按回车,跳出while循环并执行后续操作 经典使用: while (scanf("%ld",&a)!=EOF) (EOF:End Of File) 还有: while (fgets(buf,101,stdin)) whil 阅读全文
posted @ 2017-03-30 17:41 congmingyige 阅读(1512) 评论(0) 推荐(0) 编辑
摘要:波利亚罐子模型:罐中有a个白球,b个黑球。每次从罐中随机抽取一球,观察其颜色后,连同附加的c个同色球一起放回罐中,再进行下一次抽取。证明:第n次取得白球的概率为a/(a+b) (n>=1位整数)。 阅读全文
posted @ 2017-03-28 22:33 congmingyige 阅读(5577) 评论(0) 推荐(0) 编辑
摘要:dijkstra+贪心 每次加一个到起始点(首都)距离最小的点。 然后加边,这个最小点必然通过一条边和已加入的某个点相连,在这个最小点与已加入的点相连的边中,选取最短的一条边加入。 证明如下: 前提: 图G=<V,E,W>。点x到点y的最短距离为(途中可经过其它点)为D(x,y)或D(y,x),若y 阅读全文
posted @ 2017-03-28 10:48 congmingyige 阅读(269) 评论(0) 推荐(0) 编辑
摘要:方法1: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <malloc.h> 4 #include <stdbool.h> 5 6 int main() 7 { 8 long i,j,n,ans=0; 9 //vis[x]若为true,则 阅读全文
posted @ 2017-03-26 18:29 congmingyige 阅读(390) 评论(0) 推荐(0) 编辑
摘要:用矩阵求斐波那契数列,快速幂log(n),只用求最后4位(加和乘的运算中前面的位数无用) 阅读全文
posted @ 2017-03-26 17:02 congmingyige 阅读(259) 评论(0) 推荐(0) 编辑
摘要:E:even 奇数 O:odd 偶数 若(a,b)为(e,e),则gcd(a,b)=2*gcd(a/2,b/2) 若(a,b)为(e,o),则gcd(a,b)=gcd(a/2,b) 若(a,b)为(o,o)[a>=b],则gcd(a,b)=gcd(a,b-a) 证明: I.若a=c*d b=c*e 阅读全文
posted @ 2017-03-26 16:38 congmingyige 阅读(650) 评论(0) 推荐(0) 编辑
摘要:1.创建链表中没有分配空间 for (i=1;i<=n;i++) { //遗漏,从而使链表的每一个数据的地址都一样 s=(struct node *) malloc (sizeof(struct node)); scanf("%ld",&s->data); s->next=p; p=s; } 2.对 阅读全文
posted @ 2017-03-25 23:05 congmingyige 阅读(646) 评论(0) 推荐(0) 编辑
摘要:http://pan.baidu.com/s/1o8a2cFC 阅读全文
posted @ 2017-03-25 22:53 congmingyige 阅读(873) 评论(0) 推荐(0) 编辑
摘要:下载地址:http://pan.baidu.com/s/1nuVew6d 阅读全文
posted @ 2017-03-25 22:13 congmingyige 阅读(555) 评论(0) 推荐(0) 编辑
摘要:1.把很多简单语句括起来 begin end; 2.开始,结束 begin end. 3.判断if if (布尔表达式) then begin 语句 end //没有‘;’ else if () begin 语句 end else begin 语句 end; 4.循环for for i:=1 to 阅读全文
posted @ 2017-03-25 17:17 congmingyige 阅读(275) 评论(0) 推荐(0) 编辑
摘要:其中(x,y)为x和y的最大公约数 1. 若x=s*a,y=s*b,则(x,y)=s*(a,b) 证明: 对于一个质数,a拥有该质数的个数为ai,b拥有该质数的个数为bi,s拥有该质数的个数为si,而x拥有该质数的个数为ai+si,y拥有该质数的个数为bi+si。对于任何质数,都有min(si+ai 阅读全文
posted @ 2017-03-24 20:59 congmingyige 阅读(296) 评论(0) 推荐(0) 编辑
摘要:下载地址:http://pan.baidu.com/s/1jIt6UlK 阅读全文
posted @ 2017-03-23 13:37 congmingyige 阅读(1732) 评论(0) 推荐(0) 编辑
摘要:下载地址:http://pan.baidu.com/s/1dEJPdAx GJD_High_Plus_High High_Plus_High_YaWei GJD_High_Plus_Low GJD_High_Plus_Low_YaWei /////////////////////////////// 阅读全文
posted @ 2017-03-19 13:40 congmingyige 阅读(224) 评论(0) 推荐(0) 编辑
摘要:1. 十进制转2421码:小于4不考虑使用最高位,从最高位向最低位依次相减。 如3=2+1,为0011;7=2+4+1,为1101 2. 十进制5211码:按照最高位,次高位,最低位,次低位的顺序依次相减 如6=5+1,为1001,7=5+2,为1100 3. 格雷码转换 介绍:http://blo 阅读全文
posted @ 2017-03-17 22:57 congmingyige 阅读(5759) 评论(0) 推荐(0) 编辑
摘要:格雷码证明 x为原来的数,y为格雷码,两者都用二进制表示 y=x xor (x shr 1) 可认为y(k)=x(k) xor x(k+1),其中y(k)为y的从低到高第k位,x(k)为x的从低到高第k位。设二进制位数为n,注意x(n+1)=0。 1.所有二进制对应的格雷码都不相同 x->y y(k 阅读全文
posted @ 2017-03-17 13:34 congmingyige 阅读(750) 评论(0) 推荐(0) 编辑
摘要:xor 证明: 0 xor 0=0 0 xor 1=1 1 xor 0=1 1 xor 1=0 0 xor 其它数,数值不会改变1 xor 其它数,数值会反转 所以x个数0和y个数1进行xor运算(0,1位置任意),值为y % 1 x xor y ,在二进制下是每位单独进行xor运算(若x,y位数不 阅读全文
posted @ 2017-03-17 13:33 congmingyige 阅读(501) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 4 //判断i是否质数,需要判断i能否被(long)sqrt(i)以内的数整除 5 //若i能被其中一个质数整除,则i不是质数;否则i是质数 6 7 int main() 8 { 9 //n=10 ans=4 10 //n=100 ans=25 11 //n=1000 ans=168 12 ... 阅读全文
posted @ 2017-03-15 19:12 congmingyige 阅读(363) 评论(0) 推荐(0) 编辑
摘要:Solution:状态压缩 因为设置炮兵的局限性(同行两炮兵相差要大于2),一行10个数最多有60种可能性(程序计算) 其中判断可能性的好方法是: if ((i & (i << 1))==0 && (i & (i << 2))==0 && (i & (i >> 1))==0 && (i & (i > 阅读全文
posted @ 2017-03-13 12:49 congmingyige 阅读(256) 评论(0) 推荐(0) 编辑
摘要:一. if (5& 3==1) printf("true\n"); else printf("false\n"); 实际上执行的是 1.3==1 为假, 2.5 & 0=0 3. if (0) 执行 false (==的运算符优先级大于&) 如果判断5 & 3是否等于1,应该是这样:if ((5 & 阅读全文
posted @ 2017-03-12 20:25 congmingyige 阅读(237) 评论(0) 推荐(0) 编辑
摘要:首先注意“-9 % 4”,根据运算符优先级,负号运算符优先级大于余数(取模),所以执行的是“(-9) % 4”。 其次 % = mod ,只是在不同地方表示方法不同而已。 被除数无论是正数和负数结果都一样,所以可以把负数的被除数看成是正数。 若除数为负数,结果与除数为正数相比多了一个负号。 x % 阅读全文
posted @ 2017-03-12 16:05 congmingyige 阅读(856) 评论(0) 推荐(0) 编辑
摘要:① x 1 2 3 …… y 1 2 3 …… n-1 0 1 …… y = x % n ② x 1 2 3 …… y 2 3 4 …… n-1 0 1 …… y = ( x + 1 ) % n ③ x 1 2 3 …… y= 0 1 2 …… n-1 0 1 …… y = ( x + n - 1 阅读全文
posted @ 2017-03-12 15:44 congmingyige 阅读(291) 评论(0) 推荐(0) 编辑
摘要:1850年,科克曼在《女士与先生之日记》杂志上发表了题为的文章,提出了15个女学生问题:一位女教师每天带领好班上的15名女生去散步,她把这些女生按3人一组分成5组,问能不能作出一个连续散步7天的分组计划,使得任意两个女生曾被分到一组且仅被分到一组,也就是说,随便从15人中挑出 2人,她俩在一周所分成 阅读全文
posted @ 2017-03-10 22:53 congmingyige 阅读(748) 评论(0) 推荐(0) 编辑
摘要:1.数组 2.链表 3.数学方法求最后一个人 4.数学方法求第k个人 1.数组 2.链表 3.数学方法求最后一个人 4.数学方法求第k个人 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 //n个人,每m个人除去一个人, 阅读全文
posted @ 2017-03-10 20:18 congmingyige 阅读(1289) 评论(0) 推荐(0) 编辑
摘要:1.当第一个选手具有发球权,如果第一个选手赢了,第一个选手得一分,如果第一个选手输了,第二个选手具有发球权,而不会得分 2.赢的人发球 3.每两球换一个人发球 每种情况分是否有两分拉锯战,共六种情况,其中第一种情况对发发球者有较大的优势;第二种情况有优势,但优势不大;第三种情况(赢t球胜),当t为奇 阅读全文
posted @ 2017-03-09 19:11 congmingyige 阅读(662) 评论(0) 推荐(0) 编辑