摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~Problem Descriptionm堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也可以从有9个的中那一堆取走9个剩下0个,也可以从有10个的中那一堆取走7个剩下3个.Input输入有多组.每组第1行是m,m<=200000. 后面m个非零正整数.m=0退出.Output先取者负输出No.先取者胜输出Yes,然后输出先取者第1次取子的所有方法.如果从有a个石子的堆中取若干个后剩下b个后会胜就 阅读全文
posted @ 2012-04-15 11:07 龙杉老师 阅读(204) 评论(0) 推荐(0)
摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~取石子游戏Problem Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。Input输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。Output输出对应也有若干行,每行包含一个数字1或0,如果最 阅读全文
posted @ 2012-04-15 00:25 龙杉老师 阅读(219) 评论(0) 推荐(0)
摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~博弈论总结有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s, 阅读全文
posted @ 2012-04-14 21:40 龙杉老师 阅读(625) 评论(0) 推荐(0)
摘要: ~~转载请注明出处^^Phone ListProblem DescriptionGiven a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue listed these numbers:1. Emergency 9112. Alice 97 625 9993. Bob 91 12 54 26In this case, it’s not possible to call B 阅读全文
posted @ 2012-04-14 19:32 龙杉老师 阅读(289) 评论(0) 推荐(0)
摘要: ~~ 转载请注明出处^^今天看到了,蓝桥杯上面的一道题,求21位花朵数,题目是:l(编程题)花朵数一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。例如:当N=3时,153就满足条件,因为1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。当N=4时,1634满足条件,因为1^4 + 6^4 + 3^4 + 4^4 = 1634。当N=5时,92727满足条件。实际上,对N的每个取值,可能有多个数字满足条件。程序的任务是:求N=21时,所有满足条件的花朵数。注意:这个整数有21 阅读全文
posted @ 2012-04-14 15:09 龙杉老师 阅读(5698) 评论(3) 推荐(0)
摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~功夫不负有心人,终于把这道题推出来了:即用排列组合加二项式定理,0-n/2个 A或C,剩下的填B、D,i和j都是偶数C(n,i)*C(n-i,j)*2^(n-i-j,);先计算当i=0时,C(n-i,j)*2^(n-i-j,)的值,得C(n,0)*2^n+C(n,2)*(2^n-2)+……+C(n,n-2)*2^2+C(n,n)*2^0;由于(2+1)^n和(2-1)^n有二项式展开定理分别展开再相加,再除以2,即得C(n,j)*2^(n-j,)的值为(3^n+1)/2;然后再求i=2,4……时C(n-i,j)*2^(n-i-j,)的值,最后得到表 阅读全文
posted @ 2012-04-10 21:56 龙杉老师 阅读(239) 评论(0) 推荐(0)
摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~青蛙的约会Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上 阅读全文
posted @ 2012-04-10 16:03 龙杉老师 阅读(270) 评论(0) 推荐(0)
摘要: 此题为扩展欧几里得算法,代码如下:#include<iostream>using namespace std;int EE(int a,int b,int& x,int& y){ if(b==0) { x=1; y=0; return a; } int r=EE(b,a%b,x,y); int temp=x; x=y; y=temp-a/b*y; return r;}int main(){ int a,b,x,y,gcd; while(scanf("%d%d",&a,&b)!=EOF) { gcd... 阅读全文
posted @ 2012-04-09 23:46 龙杉老师 阅读(271) 评论(0) 推荐(0)
摘要: ^^^转载请注明出处,谢谢合作O(∩_∩)O~A/B 扩展欧几里得算法Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Problem Description要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。Input数据的第一行是一个T,表示有T组数据。每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。Output对应每组数据输出(A/B)% 阅读全文
posted @ 2012-04-08 23:39 龙杉老师 阅读(1873) 评论(0) 推荐(0)
摘要: 按Windows:显示或隐藏 “开始”功能表Windows+BREAK:显示“系统属性” 对话框Windows+D:显示桌面Windows+M:最小化所有窗口Windows+Shift+M:还原最小化的窗口Windows+E:开启“资源管理器”Windows+F:查找文件或文件夹Windows+CTRL+ F:查找电脑Windows+F1:显示 Windows “帮助”Windows+R:开启“运行” 对话框Windows+U:开启 “公用程序管理器”Ctrl快捷键Ctrl+C C语言程序中结束 死循环Ctrl+S 保存Ctrl+W 关闭程序Ctrl+N 新建Ctrl+O 打开Ctrl+Z 撤 阅读全文
posted @ 2012-04-05 11:33 龙杉老师 阅读(321) 评论(0) 推荐(0)
摘要: 代码如下:#include<stdio.h> //此链表设有头结点#include<stdlib.h>#include<conio.h>#define ERROR 0#define OK 1#define OVERFLOW -2typedef int Elemtype;typedef int Status ;typedef struct LNode{ Elemtype data; struct LNode *next;}LNode,*Linklist;//函数声明应放在定义结构体之后LNode * Creat(int n);Status Insert(Lin 阅读全文
posted @ 2012-04-02 23:36 龙杉老师 阅读(483) 评论(0) 推荐(0)
摘要: 今天见到个题目,就把他做了,题目如下:在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)+-------+------+|abc |xyz=tt|+-------+------+|hellomm|t2 |+-------+------+本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。具体的要求是:用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。程序输出:用表格方式重新展现的输入内容。例如:用户输入:3cat,dog,go... 阅读全文
posted @ 2012-04-02 15:36 龙杉老师 阅读(16573) 评论(0) 推荐(0)
摘要: 最近做了个实验,写个线性表,感觉挺好写,但还是发现了几个值得注意的地方,代码如下:#include<stdio.h>#include<conio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OVERFLOW -2#define OK 1#define ERROR 0#define LIST_INIT_SIZE 10#define LISTINCREMENT 4typedef int Elemtype;typedef int Status;typedef struct{ Elemtype * 阅读全文
posted @ 2012-03-29 22:55 龙杉老师 阅读(464) 评论(0) 推荐(0)
摘要: 忙了一天,做出来个简单的成绩管理系统,代码如下://学生成绩管理程序 2012年3月17日08:25:05至2012年3月18日12:54:49//此系统密码为"aa"//此系统供学校成绩管理中心使用,不是学生自己使用,所以查每个学生信息时,会显示出密码//学号不能相同 姓名 不能带空格//头文件====================================#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>//声明部分===== 阅读全文
posted @ 2012-03-18 13:21 龙杉老师 阅读(739) 评论(0) 推荐(1)
摘要: 运行cmd,打开命令提示符:nslookup + 网址或IP 查询网址或IPping +IP 查看传输数据ping+IP + -t 持续查看传输数据 按ctrl+c停止查询,然后查看传输记录;ctrl+break 查看传输记录 但是不停查询ipconfig 查询当前IPtracert +IP 查看到达此IP需要经过几个路由器,速度慢,解析IP为他们的名称;tracert + -d +IP 查看到达此IP需要经过几个路由器,速度快 不解析IP为他们的名称。其他常用指令集锦:cleanmgr–打开磁盘清理工具compmgmt.msc---计算机管理conf—-启动 netmeetingcharm. 阅读全文
posted @ 2012-03-13 23:57 龙杉老师 阅读(223) 评论(0) 推荐(0)
摘要: HDU 1003 : Max Sum Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.InputThe first line of the input contains an integer T(... 阅读全文
posted @ 2012-03-13 09:37 龙杉老师 阅读(263) 评论(0) 推荐(0)
摘要: 续(1),现在写一个直接输入任意大于3的整数的程序,直接判断其是否为魔方阵,程序如下:#include<stdio.h>#include<string.h>#define M 100int main(){ int n,a[M][M]; void output(int a[][M],int n); void J_MFZ(int a[][M],int n); void SO_MFZ(int a[][M],int n); void DO_MFZ(int a[][M],int n); void check(int a[][M],int n); printf("... 阅读全文
posted @ 2012-03-10 22:42 龙杉老师 阅读(714) 评论(0) 推荐(0)
摘要: 此题就是求n!,很明显只能用数组来写,不过数组要开大些,此题的Time Limit: 10000/5000 MS (Java/Others) ,下面是我的AC代码,勉强过:#include<stdio.h>//根据人手算 而得到的算法#include<string.h>#define M 40000 //数组要开大些 也不能太大 否则不能通过int main(){ int a[M],i,j,t,k,l,n; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); a[0]=1; ... 阅读全文
posted @ 2012-03-09 10:54 龙杉老师 阅读(764) 评论(0) 推荐(0)
摘要: 谷歌本周在温哥华CanSecWest信息安全大会上举办了一个名为Pwnium的黑客大赛,谷歌悬赏100万美元挑战黑客攻破Chrome浏览器安全防线。但重赏之下必有勇夫,一名俄罗斯大学生不久便成功攻破了运行Chrome浏览器的PC。这名名为谢尔盖•格拉祖诺夫(SergeyGlazunov)的大学生成功攻破Chrome浏览器,因此而获得了6万美元奖金。据悉,格拉祖诺夫在攻击中使用了此前未曾发现的漏洞,从而绕过了Chrome浏览器的“沙箱”(sandbox)限制而成功攻破了Chrome浏览器插件的子系统。谷歌信息安全团队成员贾斯汀•沙赫(JustinSchuh)在Twitter上确认了这一消息。 . 阅读全文
posted @ 2012-03-08 22:59 龙杉老师 阅读(1195) 评论(0) 推荐(1)
摘要: 《C程序设计(第四版)》 谭浩强的,第六章 第7题 有一个输出 魔方阵的题,相信困惑了不少人,下面本文给予大家完整的解答。所谓魔方阵即1-N*N个数排成一个n阶矩阵,矩阵特点:每一行,每一列,对角线之和都等于相同的值。下面根据资料总结得到:1):奇数的魔方阵:其数字排列规则如下: 1)将1填入第一行中间; 2)将每个数填在前一个数的右上方。 3)若该位置超出最上行,则改填在最下行的对应位置; 4)若该位置超出最右列,则该填在最左列的对应行位置; 5)若某元素填在第一行最右列,下一个数填在该数同列的下一行; 6)若某数已找到了填写位置,但其已填了其他数据,则这个数应填在应该填的位置... 阅读全文
posted @ 2012-03-08 16:37 龙杉老师 阅读(4521) 评论(4) 推荐(2)
摘要: 先来看一个例子,即赌徒输光问题:赌徒甲有资本a元,赌徒乙有资本b元,两人进行赌博,每赌一局输者给赢者1元,没有和局,直赌至两人中有一人输光为止。设在每一局中,甲获胜的概率为p,乙获胜的概率为q=1-p,求甲先输光的概率。 解:先设c=a+b; r=q/p;这个实际上是Markov过程(马尔科夫过程),具体细节不说了,结果就是:HDU1204 这道糖果大战,也是这类题目,下面是自己的AC代码:#include<stdio.h>#include<math.h>#define M 1e-12int main(){ double p,q,s,r; int a,b; while. 阅读全文
posted @ 2012-03-08 11:14 龙杉老师 阅读(1232) 评论(0) 推荐(0)
摘要: qsort是C语言中用二分法进行的快速排序,其时间复杂度为n*log(n);库函数名为:#include<stdlib.h>基本形式为:qsort(a,n,sizeof(..),cmp);1:对整形数组排序例如a[5]={1,4,3,5,2};用函数qsort(a,5,sizeof(a[0]),cmp);其中cmp为 函数为cmp(const void *a,const void *b){return *(int *)a-*(int *)b;//要尽量强制转换类型}2:字符的排序其他和整形一样,函数为int cmp(const void *a,const void *b){retu 阅读全文
posted @ 2012-03-07 23:54 龙杉老师 阅读(820) 评论(0) 推荐(0)
摘要: 因为0-9 的4次方的的末尾数为其本身,所以是以4为循环的,其代码为: #include<stdio.h> int main() { int n,i,s,t; scanf("%d",&t); while(t--) { scanf("%d",&n); s=1; for(i=1;i<=(n%4+4);i++) //+4是因为当n为4的倍数时 n%4=0 就不执行循环了 { s*=(n%10); s=s%10; } printf("%d\n",s); } ret... 阅读全文
posted @ 2012-03-07 23:52 龙杉老师 阅读(334) 评论(0) 推荐(0)