ural 1889 Airport Announcements (暴力模拟)
来源:互联网 发布:知画和永琪圆房是哪几 编辑:程序博客网 时间:2024/06/07 10:29
训练赛又翻车了,不敢暴力模拟,现在已经傻傻分不清什么时候复杂度不会超时了,事实证明这道题数据给的很小就应该暴力模拟坚定自己的想法。
题意是给你n个字符串 看能不能分成连续的相等的字符串,其中unknown任意变化。比如6个字符串,分成111111,222,333的形式。如果出现相同的必须连续不能中间插入不同的 ,就比如112211就是错的。(题目背景就是广播用不同语言说话,那广播必然是连续播报的,看神奇主人公会很多语言,请帮他看看有没有听错,说实话ural的题目很多题意非常难理解。很痛苦)
不多说了,能怎么爆怎么爆。先一遍扫过去,来一次循环,先以i为单位找出其中一个不是unknown的记录袭来,再循环一遍这i个单位中是不是都和他一样,再循环找这个预言是不是只出现一次。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <vector>#include <string>using namespace std;const int maxn = 1000;int ans[maxn];string arr[maxn];bool cmp(int a, int b){ return a<b;}int n;bool judge(int x){ for(int i=0; i<n; i+=x) { int dot = -1; for(int t=i; t<i+x; t++) { if(arr[t] != "unknown") { dot = t; break; } } if(dot == -1) continue; for(int t=i; t<i+x; t++) { if(arr[t] == arr[dot] || arr[t] == "unknown") continue; else return false; } for(int k=i+x; k<n; k++) { if(arr[k] == arr[dot]) return 0; } } return true;}int main(){ while(scanf("%d",&n)!=EOF && n) { memset(ans,0,sizeof(ans)); for(int i=0; i<n; i++) cin >> arr[i]; int cnt = 0; bool flag = false; for(int i=1; i<=n; i++) { if(n%i == 0) { if(judge(i)) { ans[cnt++] = n/i; flag = true; } } } sort(ans,ans+cnt,cmp); if(!flag) { printf("Igor is wrong.\n"); continue; } for(int i=0; i<cnt; i++) { if(!i) printf("%d",ans[i]); else printf(" %d",ans[i]); } printf("\n"); }}
阅读全文
0 0
- ural 1889 Airport Announcements (暴力模拟)
- URAL 1889. Airport Announcements 模拟题
- URAL 1889. Airport Announcements(数学啊 )
- Airport Announcements URAL
- Airport Announcements(NEERC 2011 Eastern Subregional)
- Timus 1889. Airport Announcements
- URAL 1600 Airport
- Ural 1780 Gray Code (暴力)
- HLJUOJ1117(暴力模拟)
- HDU2555(模拟暴力)
- HDU6168(暴力模拟)
- URAL 1319. Hotel (模拟)
- URAL 1011|Conductors|暴力
- URAL 1083|Factorials!!!|暴力
- URAL 1037. Memory Management (模拟)
- URAL 1290. Sabotage(STL & 模拟啊)
- URAL 1893. A380(模拟啊 )
- URAL 1893. A380 (阅读理解 + 模拟)
- IDEA Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA
- JavaScript 四则运算(加减乘除小数运算)避免损失精度
- JavaScript 函数 eval()
- java第一章_java运算符_比较运算符
- Poedu_Python_Lesson003_基础语法_列表、元组、判断、循环
- ural 1889 Airport Announcements (暴力模拟)
- Linux安装配置go运行环境
- 深入理解css之 —— absolute定位
- kotlin语言学习文档 for Android
- JSP 服务器响应
- Android 利用commons-net-3.3实现ftp上传下载
- 实现iOS本地化的简单方式-XLIFF
- Java实现发送短信验证验证码功能
- “穷人思维”和“富人思维”有什么区别?