TopCoder SRM 644 Div2 Problem 500 - LostCharacter (贪心)
2015-01-03 15:08
344 查看
题意
给出一些字符串数组,可能包含有?。现在要求输出每个字符串在按字典序排序后的最靠前的位置。
思路
一开始看不懂题目,以为是要一起考虑的。原来是每个字符串分开考虑。因为数据量很小,所以直接无脑暴力。
对于每个字符串,把它里面的?都改成a,然后把其他的字符串里的?都改成z,这样就能使位置尽量靠前。
顺便吐槽一下,连了一个上午加半个下午的TC,终于给连上了。
代码
class LostCharacter {
public:
vector<int> getmins(vector<string> str) {
vector<int> ans;
vector<string> tmp;
tmp = str;
if (str.empty()) return ans;
for (int i = 0; i < str.size(); i++)
{
string target = str[i];
for (int j = 0; j < target.size(); j++)
if (target[j] == '?') target[j] = str[i][j] = 'a';
for (int j = 0; j < str.size(); j++)
{
if (i == j) continue;
for (int k = 0; k < str[j].size(); k++)
if (str[j][k] == '?') str[j][k] = 'z';
}
sort(str.begin(), str.end());
ans.push_back(lower_bound(str.begin(), str.end(), target) - str.begin());
str = tmp;
}
return ans;
}
};
相关文章推荐
- TopCoder SRM 660 Div2 Problem 500 - PrivateD2party (贪心)
- TopCoder SRM 650 Div2 Problem 500 - TaroFillingAStringDiv2 (DP)
- TopCoder SRM 652 Div2 Problem 1000 - NoRightTurnDiv2 (几何 + 贪心)
- TopCoder SRM 651 Div2 Problem 500 - FoxAndSouvenirTheNext (DP)
- TopCoder SRM 663 Div2 Problem 500 - ABBA (思维)
- TopCoder SRM 633 Div2 Problem 500 - Jumping
- TopCoder SRM 654 Div2 Problem 500 - OneEntrance (思维)
- TopCoder SRM 657 Div2 Problem 500 - ProblemSetsEasy (二分 + 模拟)
- TopCoder SRM 634 Div2 Problem 500 - ShoppingSurvey
- TopCoder SRM 647 Div2 Problem 500 - TravellingSalesmanEasy (思维)
- Topcoder: Problem Statement SRM 39 DIV1 500 Point
- Topcoder SRM 663 Div2 Problem 500 - ABBA 解题报告
- TopCoder SRM 645 Div2 Problem 500 - ConnectingCars (枚举)
- TopCoder SRM 646 Div2 Problem 500 - TheGridDivTwo (BFS + 优先队列)
- TopCoder SRM 653 Div2 Problem 500 - RockPaperScissorsMagicEasy (DP)
- TopCoder SRM 655 Div2 Problem 500 - FoldingPaper2 (思维)
- TopCoder SRM 661 Div2 Problem 500 - BridgeBuildingDiv2 (枚举 + 状态压缩)
- TopCoder SRM 648 Div2 Problem 1000 - ABC (DP)
- TopCoder SRM 670 Div2 Problem 1050 - Treestrat (floyd)
- Topcoder SRM 660 DIV1 500 Privateparty(数学)