HDOJ 2526 HDU 2526ロマンチック携帯ACM 2526 IN HDU
4063 ワード
MiYuオリジナル、転帖は明記してください:転載は______________白い家 から
タイトルアドレス:
http://acm.hdu.edu.cn/showproblem.php?pid=2526
タイトルの説明:
ロマンチックな携帯電話Time Limit:3000/1000 MS(Java/others)Memory Limit:32768/32768 K(Java/others)Total Submission(s):362 Accepted Submission(s):150
Problem Description
最近、WisKeyは携帯電話の着信音に夢中になっているが、音律がよく分からないので、コンピュータでランダムに着信音を生成できるかどうか考えている.WisKeyがプログラムを書いた後、生成されたのはベルではなく、ノイズであることに気づいた.
その後、WisKeyはいくつかの楽譜を調べたところ、多くのベルが何らかの法則で変化していることが分かった.ここではこの難題を簡略化するために、彼は3つの音符で次の音符を判断した.
パターンがあれば
第1行目の楽譜が与えられた場合、パターンによって以下の楽譜パターンが生成される.
私たちは0で白い格子を表し、1で黒い格子を表します.
連続した3つの格子がないエッジ(すなわち左または右の格子がない)については,欠けている格子の代わりに白い格子を直接用いた.
Input
最初の行には、Tグループのデータを表す整数Tがあります.
各グループのデータには整数Mがあり、M行の楽譜を出力することを示す.続いて8行のパターン列があり、左が音符モード、右が次の音符です.最後の行は最初の楽譜です.
Output
M行を出力し、M行楽譜を表す.
Sample Input
Sample Output
标题分析:纯水模拟题....上の3つの格子の色から下の真ん中の色を出すのです.押し出して直接出力すればいいです.タイトルは最初の行の色を与えて、下のは直接暴力で押し出すことができてhashですぐに判断することができます.コードは以下のとおりです:/*
Coded By : MiYu
Link : http://www.cnblogs.com/MiYu || http://www.cppblog.com/MiYu
Author By : MiYu
Test : 1
Program : 2526
*/
//#pragma warning( disable:4789 )
#include
#include
#include
using namespace std;
char c[2][50];
int T,t,M;
int main(){
char a[3],b[9];
for(int i=0;i<2;i++) c[i][0]='0';
scanf("%d",&T);
while(T--){
scanf("%d",&M);
for(int i=1;i<=8;i++){
scanf("%s",a);
int num=(a[0]-'0')*4+(a[1]-'0')*2+a[2]-'0';
scanf("%d",&t);
b[num] = '0' + t;
}
scanf("%s",&c[0][1]);
int len=strlen(&c[0][1]);
for(int i=0;i<2;i++) c[i][len+1]='0';
for(int j=0;jfor(int i=0;iint num=(c[j%2][i]-'0')*4+(c[j%2][i+1]-'0')*2+c[j%2][i+2]-'0';
c[(j+1)%2][i+1]=b[num];
printf("%c",c[j%2][i+1]);
}
printf("");
}
}
return 0;
}
タイトルアドレス:
http://acm.hdu.edu.cn/showproblem.php?pid=2526
タイトルの説明:
ロマンチックな携帯電話Time Limit:3000/1000 MS(Java/others)Memory Limit:32768/32768 K(Java/others)Total Submission(s):362 Accepted Submission(s):150
Problem Description
最近、WisKeyは携帯電話の着信音に夢中になっているが、音律がよく分からないので、コンピュータでランダムに着信音を生成できるかどうか考えている.WisKeyがプログラムを書いた後、生成されたのはベルではなく、ノイズであることに気づいた.
その後、WisKeyはいくつかの楽譜を調べたところ、多くのベルが何らかの法則で変化していることが分かった.ここではこの難題を簡略化するために、彼は3つの音符で次の音符を判断した.
パターンがあれば
第1行目の楽譜が与えられた場合、パターンによって以下の楽譜パターンが生成される.
私たちは0で白い格子を表し、1で黒い格子を表します.
連続した3つの格子がないエッジ(すなわち左または右の格子がない)については,欠けている格子の代わりに白い格子を直接用いた.
Input
最初の行には、Tグループのデータを表す整数Tがあります.
各グループのデータには整数Mがあり、M行の楽譜を出力することを示す.続いて8行のパターン列があり、左が音符モード、右が次の音符です.最後の行は最初の楽譜です.
Output
M行を出力し、M行楽譜を表す.
Sample Input
1
16
111 1
110 1
101 1
100 1
011 1
010 0
001 1
000 0
0000000000000001000000000000000
Sample Output
0000000000000001000000000000000
0000000000000010100000000000000
0000000000000101010000000000000
0000000000001010101000000000000
0000000000010101010100000000000
0000000000101010101010000000000
0000000001010101010101000000000
0000000010101010101010100000000
0000000101010101010101010000000
0000001010101010101010101000000
0000010101010101010101010100000
0000101010101010101010101010000
0001010101010101010101010101000
0010101010101010101010101010100
0101010101010101010101010101010
1010101010101010101010101010101
标题分析:纯水模拟题....上の3つの格子の色から下の真ん中の色を出すのです.押し出して直接出力すればいいです.タイトルは最初の行の色を与えて、下のは直接暴力で押し出すことができてhashですぐに判断することができます.コードは以下のとおりです:/*
Coded By : MiYu
Link : http://www.cnblogs.com/MiYu || http://www.cppblog.com/MiYu
Author By : MiYu
Test : 1
Program : 2526
*/
//#pragma warning( disable:4789 )
#include
#include
#include
using namespace std;
char c[2][50];
int T,t,M;
int main(){
char a[3],b[9];
for(int i=0;i<2;i++) c[i][0]='0';
scanf("%d",&T);
while(T--){
scanf("%d",&M);
for(int i=1;i<=8;i++){
scanf("%s",a);
int num=(a[0]-'0')*4+(a[1]-'0')*2+a[2]-'0';
scanf("%d",&t);
b[num] = '0' + t;
}
scanf("%s",&c[0][1]);
int len=strlen(&c[0][1]);
for(int i=0;i<2;i++) c[i][len+1]='0';
for(int j=0;j
c[(j+1)%2][i+1]=b[num];
printf("%c",c[j%2][i+1]);
}
printf("");
}
}
return 0;
}