Codeforces Round #135 (Div. 2)---A. k-String
2017-05-17 14:30
471 查看
k-String
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
A string is called a k-string if it can be represented as k concatenated
copies of some string. For example, the string "aabaabaabaab" is at the same time a 1-string, a 2-string and a 4-string, but it is not a 3-string, a 5-string,
or a 6-string and so on. Obviously any string is a 1-string.
You are given a string s, consisting of lowercase English letters and a positive integer k.
Your task is to reorder the letters in the string sin such a way that the resulting string is a k-string.
Input
The first input line contains integer k (1 ≤ k ≤ 1000).
The second line contains s, all characters in s are
lowercase English letters. The string length s satisfies the inequality 1 ≤ |s| ≤ 1000,
where |s| is the length of string s.
Output
Rearrange the letters in string s in such a way that the result is a k-string.
Print the result on a single output line. If there are multiple solutions, print any of them.
If the solution doesn't exist, print "-1" (without quotes).
Sample test(s)
input
output
input
output
解题思路:给一个串。问能否由k个同样的串连接而成。
用STL里的map。扫一遍。分别记录每一个字符的个数。在推断全部的字符是否是k的倍数,若不是,则输出-1;否则,遍历依次map。每一个字符输出(总个数)/k个,然后反复k次就可以。
AC代码:
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
A string is called a k-string if it can be represented as k concatenated
copies of some string. For example, the string "aabaabaabaab" is at the same time a 1-string, a 2-string and a 4-string, but it is not a 3-string, a 5-string,
or a 6-string and so on. Obviously any string is a 1-string.
You are given a string s, consisting of lowercase English letters and a positive integer k.
Your task is to reorder the letters in the string sin such a way that the resulting string is a k-string.
Input
The first input line contains integer k (1 ≤ k ≤ 1000).
The second line contains s, all characters in s are
lowercase English letters. The string length s satisfies the inequality 1 ≤ |s| ≤ 1000,
where |s| is the length of string s.
Output
Rearrange the letters in string s in such a way that the result is a k-string.
Print the result on a single output line. If there are multiple solutions, print any of them.
If the solution doesn't exist, print "-1" (without quotes).
Sample test(s)
input
2 aazz
output
azaz
input
3 abcabcabz
output
-1
解题思路:给一个串。问能否由k个同样的串连接而成。
用STL里的map。扫一遍。分别记录每一个字符的个数。在推断全部的字符是否是k的倍数,若不是,则输出-1;否则,遍历依次map。每一个字符输出(总个数)/k个,然后反复k次就可以。
AC代码:
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; #define INF 0x7fffffff map<char, int> m; int main() { #ifdef sxk freopen("in.txt","r",stdin); #endif int n; string s; while(scanf("%d",&n)!=EOF) { cin>>s; int len = s.size(); for(int i=0; i<len; i++) m[s[i]] ++; map<char, int>::iterator it; int flag = 1; for(it=m.begin(); it!=m.end(); it++){ if(it->second % n){ flag = 0; break; } } if(!flag) printf("-1\n"); else{ for(int j=0; j<n; j++){ for(it=m.begin(); it!=m.end(); it++){ for(int i=1; i<=it->second/n; i++) printf("%c", it->first); } } printf("\n"); } } return 0; }
相关文章推荐
- Codeforces Round #147 (Div. 2) E Build String(最小费用流)
- Codeforces Round #135 (Div. 2)
- Codeforces Round #282 Div.1 B Obsessive String --DP
- 【Codeforces Round 354 (Div 2)C】【前缀和二分or双指针】Vasya and String ab序列最多改变k位置的最长同字符子串长度
- Codeforces Round #442 (Div. 2) B. Nikita and string
- codeforces AIM Tech Round 3 (Div. 2)D. Recover the String
- Codeforces Round #448 (Div. 2)D. String Mark(组合数学)
- Codeforces Round #378 (Div. 2)A. Grasshopper And the String
- Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)E. Game with String(枚举)
- Codeforces Round #135 (Div. 2)——B
- Codeforces Round #445 (Div. 2) D - Restoration of string 思维 图论
- Codeforces Round #402 (Div. 1) A. String Game
- Codeforces Round #124 (Div. 1) D. The Next Good String
- Codeforces Round #184 (Div. 2) E. Playing with String(博弈)
- Codeforces Round #135 (Div. 2) D Choosing Capital for Treeland
- Codeforces AIM Tech Round (Div. 1) A Graph and String 想法
- 树形DP Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland
- Codeforces Round #135 (Div. 2) - D. Choosing Capital for Treeland(dfs / 树形DP)
- Codeforces Round #354 (Div. 2) C. Vasya and String
- Codeforces Round #297 (Div. 2)B Pasha and String