Codeforces#295(Div.2)A、B(模拟+BFS)
2015-03-03 19:12
225 查看
解题报告链接:点击打开链接
C.
题目链接:点击打开链接
解题思路:
对于给定的字符串,取出现次数最多的字母(可以同时有多个)。由这些字母组成长度为n的字符串,求有多少种组合。最后用数学知识即可。
完整代码:
C.
题目链接:点击打开链接
解题思路:
对于给定的字符串,取出现次数最多的字母(可以同时有多个)。由这些字母组成长度为n的字符串,求有多少种组合。最后用数学知识即可。
完整代码:
#include <algorithm> #include <iostream> #include <cstring> #include <climits> #include <cstdio> #include <string> #include <cmath> #include <map> #include <queue> using namespace std; typedef long long LL; const int MOD = int(1e9)+7; const int INF = 0x3f3f3f3f; const double EPS = 1e-9; const double PI = acos(-1.0); //M_PI; const int maxn = 100001; int vis[maxn]; int a[27]; int main() { #ifdef DoubleQ freopen("in.txt","r",stdin); #endif int n; string s; while(cin >> n) { cin >> s; int cnt = 0; memset(vis , 0 , sizeof(vis)); for(int i = 0 ; i < n ; i ++) { vis[s[i] - 'A'] ++; } for(int i = 0 ; i < 26 ; i ++) { if(vis[i]) { a[cnt++] = vis[i]; } } //cout << cnt << endl; sort(a , a + cnt); int k = 1; int num = a[cnt-1]; for(int i = cnt - 2 ; i >= 0 ; i --) { if(num == a[i]) k ++; else break; } LL res = 1; for(int i = 0 ; i < n ; i ++) res = res * k % MOD; cout << res % MOD << endl; } }
相关文章推荐
- poj 1606 Jugs and poj 3414 Pots(数组模拟BFS) uva 571 (数论)
- codeforces 676D (bfs 模拟)
- Codeforces 301_div.2_Ice Cave(BFS走冰块)
- Codeforces Round 389 Div.2 B. Santa Claus and Keyboard Check(模拟)
- TopCoder SRM 642 Div.2 1000 --二分+BFS
- poj 3083 Children of the Candy Corn(bfs+dfs 数组模拟方向)
- poj Pots(BFS)(路径记录)(模拟)
- hdu 非常可乐(BFS)(模拟)
- 模拟,bfs(HDU 5336,XYZ and Drops)
- hdu 4255 A Famous Grid--模拟--筛素数--bfs
- poj3414Pots(bfs模拟数组 回溯路径)
- BestCoder Round #62 (div.2)-Clarke and food(模拟)
- ACM之八数码问题----BFS搜索----数独游戏的模拟(上)
- hdu 5012 模拟+bfs
- 模拟求解迷宫问题(DFS+BFS)
- Codeforces 676D Theseus and labyrinth 模拟+bfs
- Codeforces Round 389 Div.2 B. Santa Claus and Keyboard Check(模拟)
- hdu 非常可乐(BFS)(模拟)
- codeforces #362(div.2)B. Barnicle【模拟】
- #420 Div.2 C. Okabe and Boxes——模拟