摘要: 12个硬币,有一个假的 或轻或重,找出假硬币开始用的模拟,考虑很多情况后来,lmy说轻的-1,重的+1,学数学的看什么都是数字,orz模拟写的两个差不多的代码:(一)#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int vs[15],cnt[15];int main(){ int CASE,ca,len,i,x,sum; char s1[15],s2[15],s3[8]; scanf("%d",&am 阅读全文
posted @ 2012-04-14 12:25 快乐. 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1252题意:给出六种币值的硬币,尽量用少得数量组合出(1~100)的币值,输出用的硬币的平均数量和用到的最多组合时的数量有一点,不是所有的组合都是六种硬币相加得到的,还有相减的情况,如有 1、2、5、10、20、50六种硬币,98=50+20+20+5+2+1 , 98=50+50-2 后一种才是答案代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define inf 10005const int M 阅读全文
posted @ 2012-04-14 09:37 快乐. 阅读(154) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3600题意:给出一个小矩形,每个格子有黑白两种状态,再给出一个大矩形,每个格子也有两种状态,从大矩形去掉一些行和列后能否形成小矩行(r,c<=20)开始的思路就是 行递归选择行,再列递归选择列 那就是2^400中情况 肯定会超时cxl提供的一个可行的巧妙的思路就是 枚举小矩形的第一行在大矩形中的位置(比如在大矩形的第k行) 然后递归在大矩形中选择N(小矩形的列数)然后从K行开始能否找到小矩形的对应行。。。这样就一次递归2^20次方是可以接受的代码:#include<iostream>#include<cstdio&g 阅读全文
posted @ 2012-04-14 09:22 快乐. 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:灯泡构成的5*6的矩阵,每个灯泡有亮或不亮两种状态,每按下一个开关变换一个灯泡的状态,它的上下左右也要变换,最后让所有的灯都熄灭输出按下开关的矩阵如果模拟枚举的话2^30种情况,会超时超时代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int map[8][8]={0},press[8][8]={0};int n=5,m=6,ca;bool fg;void change(int x){ int i,j; i=x 阅读全文
posted @ 2012-04-14 09:08 快乐. 阅读(191) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1342题意:给出K(k>=6)个数,从中选出6个数,按字典序输出所有的情况代码:注意输出格式#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int n,ans;int a[15],b[8];void print(){ int i; for(i=1;i<6;i++) printf("%d ",b[i]); p 阅读全文
posted @ 2012-04-14 08:34 快乐. 阅读(134) 评论(0) 推荐(0) 编辑