superman

聚精会神搞建设 一心一意谋发展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ZOJ 1051 - A New Growth Industry

Posted on 2008-03-24 20:16 superman 阅读(722) 评论(1)  编辑 收藏 引用 所属分类: ZOJ
 1 /* Accepted 1051 C++ 00:00.01 840K */
 2 #include <iostream>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n, m, d[16], f[20][20];
 9     cin >> n;
10     while(n--)
11     {
12         cin >> m;
13         for(int i = 0; i <= 15; i++)
14             cin >> d[i];
15         for(int i = 0; i < 20; i++)
16         for(int j = 0; j < 20; j++)
17             cin >> f[i][j];
18         
19         while(m--)
20         {
21             int g[20][20];
22             
23             for(int i = 0; i < 20; i++)
24             for(int j = 0; j < 20; j++)
25             {
26                 int k = f[i][j];
27                 if(i - 1 >= 0) k += f[i - 1][j];
28                 if(i + 1 < 20) k += f[i + 1][j];
29                 if(j - 1 >= 0) k += f[i][j - 1];
30                 if(j + 1 < 20) k += f[i][j + 1];
31                 
32                 g[i][j] = f[i][j] + d[k];
33                 if(g[i][j] < 0) g[i][j] = 0;
34                 if(g[i][j] > 3) g[i][j] = 3;
35             }
36             
37             for(int i = 0; i < 20; i++)
38             for(int j = 0; j < 20; j++)
39                 f[i][j] = g[i][j];
40         }
41         for(int i = 0; i < 20; i++)
42         {
43             for(int j = 0; j < 20; j++)
44                 switch(f[i][j])
45                 {
46                     case 0 : cout << '.'break;
47                     case 1 : cout << '!'break;
48                     case 2 : cout << 'X'break;
49                     case 3 : cout << '#'break;
50                 }
51             cout << endl;
52         }
53         if(n)
54             cout << endl;
55     }
56     
57     return 0;
58 }
59 

Feedback

# shuai: ZUJ 1201 - Inversion  回复  更多评论   

2008-08-22 11:00 by 一览众山小
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int num;
char ch;
while(cin>>num&&num)
{
int data[51][2];
cin>>ch;
int i,j,k;
if(ch=='P')
{
for(i=0;i<num;i++)
{
cin>>data[i][0];
data[i][1]=0;//对数组初始化必须的
// cout<<data[i][0]<<" "<<data[i][1]<<endl;
}
for(i=num-1;i>=0;i--)
for(j=i-1;j>=0;j--)
if(data[j][0]>data[i][0])
data[i][1]++;


for(i=0;i<num-1;i++)
{
bool changed=true;
for(j=0;j<num-i-1;j++)
if(data[j][0]>data[j+1][0])
{
changed=false;
int temp1=data[j][0];
int temp2=data[j][1];
data[j][0]=data[j+1][0];
data[j][1]=data[j+1][1];
data[j+1][0]=temp1;
data[j+1][1]=temp2;
}
if(changed)
break;
}



for(i=0;i<num;i++)
{
cout<<data[i][1];
if(i<num-1)
cout<<" ";
}
cout<<endl;
}



if(ch=='I')
{
for(i=0;i<num;i++)
{
cin>>data[i][1];
data[i][0]=0;
// cout<<data[i][0]<<" "<<data[i][1]<<endl;
}


j=0;
for(i=0;i<num;i++)
if((!data[i][1])&&(!data[i][0]))
{
j++;
data[i][0]=i+1;
cout<<i+1;
if(j<num)
cout<<" ";
for(k=0;k<i;k++)
data[k][1]--;
i=-1;
}
cout<<endl;
}
}
return 0;
}


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