BZOJ [NOI2009]变换序列
2018-06-17 21:02:53来源:未知 阅读 ()
1562: [NOI2009]变换序列
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 2139 Solved: 1079
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 1 2 2 1
Sample Output
HINT
30%的数据中N≤50;
60%的数据中N≤500;
100%的数据中N≤10000。
Source
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=10000+5; 4 5 bool vis[maxn]; 6 int a,n; 7 int whi[maxn],p[maxn][2]; 8 int w[maxn]; 9 10 bool dfs(int x) 11 { 12 if(x==-1) 13 return false; 14 for(int i=0;i<2;i++) 15 { 16 if(!vis[p[x][i]]) 17 { 18 vis[p[x][i]]=true; 19 if(whi[p[x][i]]==-1||dfs(whi[p[x][i]])) 20 { 21 w[x]=p[x][i]; 22 whi[p[x][i]]=x; 23 return true; 24 } 25 } 26 } 27 return false; 28 } 29 30 int main() 31 { 32 scanf("%d",&n); 33 for(int i=0;i<n;i++) 34 { 35 scanf("%d",&a); 36 p[i][0]=min((a+i)%n,(n-a+i)%n); 37 p[i][1]=max((a+i)%n,(n-a+i)%n); 38 } 39 memset(whi,-1,sizeof whi); 40 for(int i=n-1;i>=0;i--) 41 { 42 memset(vis,false,sizeof vis); 43 if(!dfs(i)) 44 { 45 printf("No Answer\n"); 46 return 0; 47 } 48 } 49 for(int i=0;i<n;i++) 50 { 51 if(i==n-1) 52 printf("%d\n",w[i]);//这个鬼畜输出害我半天格式错误,最后一个输出不能有空格! 53 else 54 printf("%d ",w[i]); 55 } 56 return 0; 57 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- bzoj3569 DZY Loves Chinese II 2020-05-25
- bzoj4036 [HAOI2015]按位或 2020-04-26
- Z 字形变换 2020-04-14
- 「BZOJ4173」数学 2020-01-15
- bzoj3944 Sum 2019-12-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash