首页 > 其他 > 详细

代码练习

时间:2015-02-09 21:39:15      阅读:273      评论:0      收藏:0      [点我收藏+]

1.火柴棒等式

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 const int match[10]={6,2,5,5,4,5,6,3,7,6};
 6 
 7 int n;
 8 
 9 int merge(int x){
10     int sum=0;
11     if(x==0)return 6;
12     while(x){
13         sum+=match[x%10];
14         x/=10;
15     }
16     return sum;
17 }
18 
19 int main(){
20     freopen("matches.in","r",stdin);
21     freopen("matches.out","w",stdout);
22     scanf("%d",&n);
23     int a,b,c,res=0;
24     n-=4;
25     for(a=0;a<=1000;a++)
26         for(b=0;b<=1000;b++)
27         {
28             c=a+b;
29             if(n==(merge(a)+merge(b)+merge(c)))
30                 res++;
31         }
32     printf("%d",res);
33     return 0;
34 }

2.作业调度方案

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <queue>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int MaxN=21;
 8 
 9 int n,m,cost[MaxN][MaxN];
10 int machen[MaxN][MaxN]; 
11 int d[MaxN*MaxN];
12 int num[MaxN];
13 bool ok[MaxN][MaxN*MaxN];
14 int f[MaxN][MaxN];
15 
16 void readfile(){
17     freopen("jsp.in","r",stdin);
18     freopen("jsp.out","w",stdout);
19     scanf("%d%d",&m,&n);//m个机器,n个工件数,m道工序
20     int i,j,x;
21     for(i=1;i<=m*n;i++)scanf("%d",&d[i]);
22     for(i=1;i<=n;i++)
23         for(j=1;j<=m;j++)
24           scanf("%d",&machen[i][j]);//第i个工件第j道工序应放入的机器号machen[i][j] 
25     for(i=1;i<=n;i++)
26       for(j=1;j<=m;j++)
27           scanf("%d",&cost[i][j]);//第i件工件第j道工序花费的时间 
28 }
29 
30 void work(){
31     int i,j,k,p,sss,ans=0;
32     bool flag=false;
33     memset(ok,false,sizeof(ok));
34     for(i=1;i<=m*n;i++)
35     {
36         k=machen[d[i]][++num[d[i]]];//按照顺序第i件工件所应该放的机器号 
37         p=f[d[i]][num[d[i]]-1];
38         while(1){
39             flag=false;
40             sss=p;
41             for(j=0;j<cost[d[i]][num[d[i]]];j++)
42               if(ok[k][p++]==true){
43                   flag=true;
44                   break;
45               }
46             if(flag==false)break;
47         }
48         for(j=0;j<cost[d[i]][num[d[i]]];j++)
49           ok[k][sss+j]=true;
50         f[d[i]][num[d[i]]]=p;
51         ans=max(ans,p);
52     }
53     cout<<ans;
54 }
55 
56 int main(){
57     readfile();
58     work();
59     return 0;
60 }

3.引水入城

4.国王游戏

5.2^k进制数

6.聪明的质检员

7.国王游戏

8.斐波那契数列

9.Hankson的趣味题

10.同余方程

11.栈

 

代码练习

原文:http://www.cnblogs.com/maopengsen/p/4282412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!