poj 3867 Funny Language || Gym 101308F
来源:互联网 发布:淘宝爱奇艺会员不见了 编辑:程序博客网 时间:2024/06/05 09:44
思路:枚举字符串,用一个优先队列来进行维护就可以了,就是利用了字母a的优先级肯定比aX高(X为任意大写字母)代码很容易看懂;
//#include<bits/stdc++.h>#include <iostream>#include <string>#include <queue>#include <map>#include <cstring>#include <cstdio>using namespace std;typedef long long LL;const int MAXN = 1008;map<string, int> sHash;int n, m, strN[MAXN][30];string str;struct myStr { string ss; int ssNum; myStr(){} myStr(string s, int n):ss(s), ssNum(n){} bool operator < (const myStr &a)const { return ssNum < a.ssNum; }};priority_queue<myStr> myQue;void dfs(string s) { for(int i = 0; i < 26; i++) { string tmp = s; tmp += i+'A'; int sLen = tmp.length(), tmpN[30]; memset(tmpN, 0, sizeof(tmpN)); for(int j = 0; j < sLen; j++) tmpN[tmp[j]-'A']++; int resN = 0; for(int j = 1; j <= m; j++) { int t = 0; for(; t < 26; t++) if (tmpN[t] > strN[j][t]) break; if (t == 26) resN++; } myQue.push(myStr(tmp, resN)); }}int main() { //freopen("funny.in", "r", stdin); //freopen("funny.out", "w", stdout); scanf("%d%d", &n, &m); for(int i = 1; i <= m; i++) { cin>>str; sHash[str] = 1; int l = str.length(); for(int j = 0; j < l; j++) { int tmp = str[j]-'A'; strN[i][tmp]++; } } dfs(""); int pN = 0; while (pN < n) { string s; while (1) { myStr aa = myQue.top(); myQue.pop(); s = aa.ss; dfs(s); if (!sHash[s]) break; } cout<<s<<endl; pN++; } return 0;}
阅读全文
0 0
- poj 3867 Funny Language || Gym 101308F
- Gym - 100512F Funny Game(杂题)
- [Gym-101350F] F
- Personal programming language Gym
- Personal programming language Gym
- 【ASC44】F - Funny Card Game
- Gym 100685 F Flood
- Gym 100989F STL
- codeforces Gym 101102F
- Codeforces-GYM-100726F
- Codeforces GYM 100803F
- Gym - 100947F
- [Gym-100520F]
- Gym 101142F Folding
- Gym 100553F-Filter
- Gym 101164.F
- Gym 101482.F
- Gym 101201.F
- kafka学习记录
- PHP中==和===的不同(两个等号和三个等号的不同)
- 递归
- nginx缓存设置proxy_cache
- 六大排序算法(插冒归堆选择快排)
- poj 3867 Funny Language || Gym 101308F
- 设计模式—单例模式(十七)
- 利用Opencv中的Houghline方法进行直线检测---python语言
- bzoj 1712 [Usaco2007 China]Summing Sums 加密
- 统一接入层方案
- C++ map的基本操作和使用
- lombok使用
- 使用Nginx+Lua(OpenResty)开发高性能Web应用
- HDU 1272 小希的迷宫(图论+STL应用)