【贪心】codeforces 825D Suitable Replacement
2017-07-29 19:38
357 查看
Link:http://codeforces.com/problemset/problem/825/D
#include <bits/stdc++.h> using namespace std; /* codeforces 825D 题意:给两个字符串,第一个字符串带有'?',可以变成任何一个字符, 并且第一个字符串的字符位置可以任意交换,问第一个字符是怎么样的才能使, 第二个字符在第一个字符中存在(非交叉)次数最多。 题解:贪心,反正可以任意交换,而且字符非交叉,我一个一个组第二个字符串, 需要什么字符,如果第一个字符串里有,拿过来,没有用'?'去代替即可。 记录'?'代表的字符。 */ const int Maxn = 1e6+6; char s[Maxn],p[Maxn]; int mp[27]; char res[Maxn]; int main(){ scanf("%s%s",s,p); int len = strlen(s); int num = 0; for(int i = 0; i < 26; i++) mp[i] = 0; for(int i = 0; i < len; i++){ if(s[i] == '?') num++; else mp[s[i]-'a']++; } int lenp = strlen(p); int k = 0; while(1){ int flag = 0; for(int i = 0; i < lenp; i++){ if(mp[p[i]-'a'] > 0) mp[p[i]-'a'] --; else{ if(num > 0){ res[k++] = p[i]; num--; } else{ flag = 1; break; } } } if(flag) break; } k = 0; for(int i = 0; i < len; i++){ if(s[i] == '?') printf("%c",res[k++]); else printf("%c",s[i]); } puts(""); return 0; }
相关文章推荐
- codeforces 825D Suitable Replacement(字母代替?贪心)
- Educational Codeforces Round 25 D Suitable Replacement 贪心
- CodeForces - 840A Leha and Function(贪心)
- CodeForces - 665C Simple Strings(贪心)
- Codeforces 808C Tea Party【贪心】
- codeforces 352 div 2 C.Recycling Bottles 贪心
- codeforces_672C. Recycling Bottles(贪心)
- Codeforces 620C Pearls in a Row(贪心)
- 思路题 codeforces div2 C Replacement
- Codeforces 618 D Hamiltonian Spanning Tree 贪心+dp
- codeforces 676C Vasya and String 贪心 尺取法
- codeforces 469D. Two Sets(贪心or并查集)
- Codeforces 902 A.Visiting a Friend 贪心
- codeforces 332C Students' Revenge 贪心
- Codeforces 435B Pasha Maximizes(贪心)
- Codeforces 439B Devu, the Dumb Guy(贪心)
- Codeforces 853B - Jury Meeting 【贪心】
- CodeForces - 853A Planning(贪心)
- Codeforces 854C. Planning 贪心
- CodeForces 101D Castle (贪心)