随笔 - 40, 文章 - 0, 评论 - 19, 引用 - 0
数据加载中……

USACO 又完成了1.1的两个简单题目

通过这两个题目练习了代码的熟练程度
发现了一个很好的网址:http://www.nocow.cn/index.php/USACO_Training
一个OIER做的wiki 里面有USACO题目的翻译和标程
了解到了蔡勒公式 一个计算星期的公式。
即随便给一个日期,就能用这个公式推算出是星期几。
蔡勒公式如下:
W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1
详见:
http://baike.baidu.com/view/598757.htm

附上两题的代码
 1 /*
 2 ID: hongtaozhy
 3 LANG: C++
 4 TASK: gift1
 5 */
 6 #include <stdio.h>
 7 #include <string.h>
 8 char name[10][15];
 9 char temp[15],temp2[15];
10 int  money[10];
11 int  rec;
12 int key;
13 int main () {
14    
15     freopen ("gift1.in""r",stdin);
16     freopen ("gift1.out""w",stdout);
17     int n ;
18     int i ;
19     scanf("%d",&n);
20     
21     forint i = 0 ; i < n ; i++ )
22     scanf("%s",name[i]);
23 
24     while(scanf("%s",temp)!=EOF){
25     key = 0;
26     forint i = 0 ; i < n ; i++ ){
27     if(!strcmp(name[i],temp)){
28     rec = i ;
29     break;
30     }
31     }
32     int nn;
33     int mon;
34  
35     
36     scanf("%d%d",&mon,&nn);
37     if( nn != 0 )
38     key = mon - ( mon / nn ) * nn ;
39     money[rec] -= mon ;
40     money[rec] += key ; 
41 
42     forint i = 0 ; i < nn ; i++ ){
43    
44     scanf("%s",temp2);
45      forint j = 0 ; j < n ; j++ ){
46         if(!strcmp(name[j],temp2)){
47         rec = j ;
48         break;
49     }
50     }
51 
52     money[rec] += mon / (nn) ;
53    
54     
55     }
56     }
57     
58     for(int i = 0 ; i < n ; i++ ){
59     printf("%s %d\n",name[i],money[i]);
60     }
61     
62    
63     return 0;
64 }
65 

 1 /*
 2 ID: hongtaozhy
 3 LANG: C++
 4 TASK: friday
 5 */
 6 #include <stdio.h>
 7 int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 8 int day[7];
 9 
10 int main () {
11     freopen ("friday.in""r",stdin);
12     freopen ("friday.out""w",stdout);
13     
14     int i,j,l=6,n;
15     scanf("%d",&n);
16     n+=1900;
17     for(i=1900;i<n;i++){
18         if((i%100!=0 && i%4==0)||i%400==0)mon[1]++;
19         for(j=0;j<12;j++){
20             day[l]++;
21             l+=mon[j];
22             l%=7;
23         }
24         mon[1]=28;
25     }
26     printf("%d",day[6]);
27     for(i=0;i<6;i++)
28         printf(" %d",day[i]);
29     printf("\n");
30 
31     return 0;
32 }
33 


posted on 2008-07-16 00:35 hadn't 阅读(274) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理