努力ing
你浪费的今天是昨天死去的人所渴望的明天!!!
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1574题目大意:如果a>0并且当前rp值大于或等于b时,才有可能发生如果a<0并且当前rp值小于或等于b是,才有可能发生事件有可能不发生,有可能发生分析:以第三组数据为例:3-50410-5-5-5510初始化:rp数组INFINF…………INF0INF…………INF01l=r=10000;20005第一事件发生:因为a<0;所以b+10000到r之间都有可能发生,用for循环2rp数组INFINF……4……0INFINF……INF01l=l+a=9995;r=10000;第二事件发生:因为 阅读全文
posted @ 2013-05-19 16:50 努力ing 阅读(211) 评论(0) 推荐(1)
摘要: 用链表做的,其实不用链表可以做,主要是想练习一下链表的使用。题目:descriptionn 个人围成一圈, 并依次编号1~n,。从编号为1 的人开始,按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人就是幸运儿。如果你想成为最后两个幸运儿,请问开始时应该站在什么位置?(设3<=n<=50) input有多个测试序列。每行是开始时的人数n output第1 行是选出顺序,第2 行是两名幸运儿的开始位置(按升序排列),位置编号之间用一个空格分开。sample input122045samlpe output2 4 6 8 10 12 3 7 11 5 阅读全文
posted @ 2013-05-12 10:25 努力ing 阅读(294) 评论(0) 推荐(0)
摘要: 是道数学类的简单题#include<iostream>using namespace std;int main(){ int n; int a[305]; memset(a,0,sizeof(a)); a[0]=a[1]=1; int i,j; for(i=3;i<305;i+=2) //基数是共轭的 { for(j=305-i;j>=0;j--) { a[i+j]+=a[j]; //基数加偶数还是基数,所以共轭,基数加基数是偶数,还是共轭的 } } w... 阅读全文
posted @ 2013-05-11 15:55 努力ing 阅读(245) 评论(0) 推荐(0)
摘要: Description设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。input输入多行,每行2个数,分别表示n和m.output计算每一行中最后剩下这个人的编号.Sample imput10 3Sample output4用循环链表写的...代码:#include<iostream>using namespace std;typedef struct node{ int data; struct node *next;}LNode,*LinkList;in 阅读全文
posted @ 2013-05-10 23:37 努力ing 阅读(239) 评论(0) 推荐(0)
摘要: 因为先没有判断i与n的大小,一直错着,郁闷的不行,蛋都碎了……#include<iostream>#include<algorithm>#include<iomanip>using namespace std;struct node{int java;int food;double agv;};bool cmp(node a,node b){return a.agv>b.agv;}int main(){int i;int m,n;node fat[1005];while(cin>>m>>n&&(m+n)!=-2) 阅读全文
posted @ 2013-05-10 21:21 努力ing 阅读(106) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1455#include<iostream>using namespace std;int main(){ int n; cin>>n; while(n--) { int m; cin>>m; cout<<(m>>1)*((m-1)>>1)<<endl; } return 0;} 阅读全文
posted @ 2013-05-09 22:59 努力ing 阅读(110) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3273#include<iostream>using namespace std; int n,m;bool erfen(int mid,int money[]){ int i,j; int sum=0; int couse=1; for(i=0;i<n;i++) { if(sum+money[i]<mid) { sum+=money[i]; } else{ sum=money[i]; ++couse; } } if(couse>m) return false; else return true;}int ma 阅读全文
posted @ 2013-05-09 21:41 努力ing 阅读(110) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1969自己纠结了很久,然后参考别人代码才知道,要学以致用啊!http://www.cnblogs.com/newpanderking/archive/2011/08/24/2152576.html题目大意是要办生日Party,有n个馅饼,有f个朋友,接下来是n个馅饼的半径。然后是分馅饼了, 注意咯自己也要,大家都要一样大,形状没什么要求,但都要是一整块的那种,也就是说不能从两个饼中 各割一小块来凑一块,像面积为10的和6的两块饼(饼的厚度是1,所以面积和体积相等), 如果每人分到面积为5,则10分两块,6切成 阅读全文
posted @ 2013-05-08 22:23 努力ing 阅读(144) 评论(0) 推荐(0)
摘要: 虽然还不是很明白,但是比以前指针在脑海中的思路更加清晰了下面是我在看书过程中写的一些东西:int a[]={1,2}; int *p; 上面的指针是指针变量,而数组名只是一个指针常量 p++,其值不断递增的,即指针值被修改,但是a++是错误的,因为a是指针常量 *(p+i) 指针p的值是始终没有改变的,所以,*(a+i)与*(p+i)是相同的const int ic=10; const 修饰的ic是不能被修改的,我们称 ic 为符号常量int i=10; int j=19; const int *p=&i; p=&j; /*p的值是可以修改的*/ j=37; /*这里j不能用* 阅读全文
posted @ 2013-05-07 19:00 努力ing 阅读(162) 评论(0) 推荐(0)
摘要: 学会用函数strtok,功能:函数返回字符串str1中紧接“标记”的部分的指针, 字符串str2是作为标记的分隔符。如果分隔标记没有找到,函数返回NULL。为了将字符串转换成标记,第一次调用str1 指向作为标记的分隔符。之后所以的调用str1 都应为NULL。例如: char str[] = "now # is the time for all # good men to come to the # aid of their country"; char delims[] = "#"; char *result = NULL result = strt 阅读全文
posted @ 2013-05-07 13:26 努力ing 阅读(104) 评论(0) 推荐(0)