摘要: 刚看到这题时本想着拿它来练习下DFS来着可是被坑了一下午让我与苦无泪,回来检查代码时,发现自己吧0这个特殊的数忘记考虑了,T_T。。。。思路:用DFS搜索出所有可能的情况然后打表输出。View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #define N 1000005 5 6 int fac[11] = {0,1,1,2,6,24,120,720,5040,40320,362880};//这里数组要注意。。fac[0] = 0,fac[1]代表了0的阶乘,fac 阅读全文
posted @ 2012-08-10 18:55 zhongya 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 弄两个数组a,b,将a数组复制到b,先把b排序,然后从依次减去b数组的数值,小于0的不能走,看指针是否能从1到达n,当第一个满足条件得数出现时即为听别人说此题也可用动态规划,不过我没想出来。。。T_T.....View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 6 int cmp(const void *a,const void *b) 7 { 8 return *(int *)a - *(int *)b; 9 }10 11 int main()12 {13 阅读全文
posted @ 2012-08-10 11:06 zhongya 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 此题比赛时没有好的方法不会做,最后从别人那里学到了一个好的方法,就是从小到大慢慢数,从11到99开始数数,直到l < 100...1 < r < 9000..9当加到这一步时,输出count就是所求结果,比如 47 1024 首先是两位数的 11 到99 ,47在里面,此时数目是5,再到三位数,101 到 999,此时1024大于他们数目count直接加上9*10(101 到191共10个),接着是四位数,1001 到 9999 ,1024在里面,此事要计算1001到1024首尾相同的数的个数,总共有3个,所以总数就是98个。View Code 1 #include<c 阅读全文
posted @ 2012-08-10 10:58 zhongya 阅读(169) 评论(0) 推荐(0) 编辑