Codeforces Round #228 (Div. 1)B
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #228 (Div. 1)B
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進制構造 這里用了十進制 有點像串并聯 每一位代表的數分開表示出來再把每一位的數并起來 比如892 ?就是800+90+2 800又可分為8*10*10。。。
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<vector> 7 #include<queue> 8 #include<stack> 9 using namespace std; 10 int w[1010][1010],s[20],en[20]; 11 int a[20]; 12 int main() 13 { 14 int k,i,j; 15 cin>>k; 16 int g = 0; 17 while(k) 18 { 19 a[++g] = k%10; 20 k/=10; 21 } 22 int o = 2; 23 int t; 24 for(i = 1 ; i <= g ; i++) 25 { 26 if(!a[i]) continue; 27 o++; 28 w[1][o] = w[o][1] = 1; 29 for(j = 1 ; j < 10-i ; j++) 30 { 31 w[o][o+1] = w[o+1][o] = 1; 32 o++; 33 } 34 for(j = 1; j <= a[i] ; j++) 35 w[o][o+j] = w[o+j][o] = 1; 36 t = o+a[i]; 37 for(j = 1 ; j < i ; j++) 38 { 39 for(int k = o+1 ; k <= t ; k ++) 40 { 41 for(int e = t+1 ; e <= t+10 ; e++) 42 w[k][e] = w[e][k] = 1; 43 o = t; 44 } 45 t+=10; 46 } 47 for(j = o+1 ; j <= t ; j++) 48 w[j][t+1] = w[t+1][j] = 1; 49 o = t+1; 50 w[o][2] = w[2][o] = 1; 51 } 52 cout<<o<<endl; 53 for(i = 1; i <= o ; i++) 54 { 55 for(j = 1; j <= o ; j++) 56 if(w[i][j]) 57 cout<<"Y"; 58 else 59 cout<<"N"; 60 puts(""); 61 } 62 return 0; 63 }View Code
?
轉載于:https://www.cnblogs.com/shangyu/p/3541792.html
總結
以上是生活随笔為你收集整理的Codeforces Round #228 (Div. 1)B的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大家谁知道有哪些礼仪老师?
- 下一篇: 【转】常见系统中文字体的英文名