UVA 12718 K - L2
来源:互联网 发布:漏洞平台源码 编辑:程序博客网 时间:2024/05/21 19:43
//超时代码1号:暴力删除~#include <iostream>#include <cstdio>#include <set>#include <vector>#include <map>#include <algorithm>#include <cstring>#include <string>#include <cmath>using namespace std;int main(){ int t; scanf("%d", &t); int f = 0; while (t--) { int ans = 0; string v1; string s; cin >> s; string v; for (int i=0; i<s.size(); i++) { for (int j=i; j<s.size(); j++) { v1.push_back(s[j]); v = v1; for (int k=0; k<v.size(); k++) { for (int j=k+1; j<v.size(); j++) { if (v[k] == v[j]) { v.erase(k, 1); j--; v.erase(j, 1); } } if (v.size()<=1) { ans++; } } while (!(v.empty())) { int i = 0; v.erase(i); } } while (!(v1.empty())) { int i = 0; v1.erase(i); } } cout << "Case "<< ++f << ":" << ans << endl; } return 0;}
超时代码2号:
#include <iostream>#include <cstdio>#include <set>#include <vector>#include <map>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <cctype>using namespace std;int main(){ int n; scanf("%d", &n); string s; string s1, s2; int k; int f = 0; while (n--) { int ans = 0; cin >> s; for (int i=0; i<s.size(); i++) { for (int j=i; j<s.size(); j++) { s1 = s.substr(i, j-i+1); for (int p = 0; p<s1.size(); p++) { k = s1.rfind(s1[p]); if (k != p && s1[k] == s1[p]) { s1.erase(k, 1); s1.erase(p, 1); p--; } } if (s1.size()<=1) { ans++; } } } cout << "Case " << ++f << ": " << ans << endl; } return 0;}/*4acmicpcaaaaaisyoursolutionfastenoughabbabababbaba*/超时代码3号:中间往两边扩展扫描~
#include <iostream>#include <cstdio>#include <set>#include <vector>#include <map>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <cctype>using namespace std;int main(){ int n; scanf("%d", &n); string s; map<char, int> m; int ju = 0; int ans = 0; int f = 0; map<char, int> :: iterator it; while (n--) { ans = 0; cin >> s; for (int i=0; i<s.size(); i++) { for (int j=0; i-j>=0 && i+j<s.size(); j++) { m[s[i-j]]++; if (i-j != i+j) { m[s[i+j]]++; } ju = 0; for (it=m.begin(); it!=m.end(); it++) { if (it->second%2) { ju++; } } if (ju <= 1) { ans++; } /*for (it=m.begin(); it!=m.end(); it++) { cout << it->first <<" "; } cout << endl;*/ } //cout << "1: " << ans << endl; m.clear(); for (int j=0; i-j>=0 && i+j+1<s.size(); j++) { m[s[i-j]]++; m[s[i+j+1]]++; ju = 0; for (it=m.begin(); it!=m.end(); it++) { if (it->second%2) { ju++; } } if (ju <= 1) { ans++; } /*for (it=m.begin(); it!=m.end(); it++) { cout << it->first <<" "; } cout << endl;*/ } //cout << "2: " << ans << endl; m.clear(); } cout << "Case " << ++f << ": " << ans << endl; } return 0;}/*isyoursolutionfastenoughabbabababbaba*/AC代码:没什么特别的 ,就是简洁大方不超时~
#include <iostream>#include <cstdio>#include <set>#include <vector>#include <map>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <cctype>using namespace std;map<char, int> m;string s;int main(){ int n; scanf("%d", &n); int ans = 0; int f = 0; int cala; while (n--) { ans = 0; cin >> s; for (int i=0; i<s.size(); i++) { m.clear(); m[s[i]]++; cala = 1; for (int j=i+1; j<s.size(); j++) { m[s[j]]++; if (m[s[j]]%2) { cala++; } else { cala--; } if (cala <= 1) { ans++; } } } cout << "Case " << ++f << ": " << ans + s.size() << endl; } return 0;}
这是道水题好么,然而刷了一天好么,真是醉了醒, 醒了醉~唔~
0 0
- UVA 12718 K - L2
- L2
- L2
- K Smallest Sums UVA
- K-Graph Oddity UVA
- UVa - 11997 - K Smallest Sums
- UVa - 11997 - K Smallest Sums
- Uva-11997-K Smallest Sums
- UVA 11997 K Smallest Sums
- UVA 11997 K Smallest Sums
- UVA 11997 K Smallest Sums
- UVa - 11997 - K Smallest Sums
- UVA 11997 K Smallest Sums
- UVA 11997 K Smallest Sums
- UVA 11997 K Smallest Sums
- uva 11997 - K Smallest Sums
- UVa 11997 K Smallest Sums
- UVA - 11997 K Smallest Sums
- Antimonotonicity
- Javascript 中的执行环境与堆叠
- urlRewrite的用法
- JAVA虚拟机:GC对象的判断方法
- Android M新的运行时权限开发者需要知道的一切 android 6.0
- UVA 12718 K - L2
- Android源码学习之接着浅析SystemServer
- JAVA使用JDBC连接SQLITE数据库
- Java多线程--线程简单认识1
- html拖动控件详解
- 判断两张图片是否完全相同
- 设计模式之模板方法模式
- Static作用
- Linux 安装 Oracle 11g——静默创建数据库(RAC)