2013-2014 ACM-ICPC Pacific Northwest Regional Contest L.Languages

题意略。

思路:

这种字符串的模拟题,应该熟练使用stringstream。

详见代码:

#include<bits/stdc++.h>
using namespace std;

map<string,string> mp;
vector<string> store;

void change(string& str){
    for(int i = 0;i < str.length();++i){
        str[i] = tolower(str[i]);
    }
}

int main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    string str;
    getline(cin,str);
    for(int i = 0;i < n;++i){
        getline(cin,str);
        stringstream ss(str);
        string name,temp;
        ss>>name;
        while(ss>>temp){
            change(temp);
            mp[temp] = name;
        }
    }
    getline(cin,str);
    while(getline(cin,str)){
        for(int i = 0;i < str.length();++i){
            if(str[i] == ‘,‘ || str[i] == ‘.‘ || str[i] == ‘!‘ || str[i] == ‘;‘ || str[i] == ‘(‘
            || str[i] == ‘)‘ || str[i] == ‘?‘){
                str[i] = ‘ ‘;
            }
        }
        stringstream ss(str);
        store.clear();
        string temp;
        while(ss>>temp){
            change(temp);
            store.push_back(temp);
        }
        for(int i = 0;i < store.size();++i){
            if(mp.count(store[i])){
                cout<<mp[store[i]]<<endl;
                break;
            }
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/tiberius/p/9382148.html

时间: 2024-08-30 11:08:47

2013-2014 ACM-ICPC Pacific Northwest Regional Contest L.Languages的相关文章

ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Krak&#243;w

ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik's RectangleProblem B: What does the fox say?Problem C: Magical GCDProblem D: SubwayProblem E: EscapeProblem F: DraughtsProblem G: History courseProblem H: C

2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution

A:Alphabet Solved. 签. 1 #include<bits/stdc++.h> 2 using namespace std; 3 char s[60]; 4 int f[60]; 5 int main(){ 6 scanf("%s",s+1); 7 int n=strlen(s+1); 8 for(int i=1;i<=n;i++) 9 { 10 f[i]=1; 11 } 12 for(int i=2;i<=n;i++) 13 { 14 for(

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution

A:Exam Solved. 温暖的签. 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int maxn = 1e3 + 10; 6 7 int k; 8 char str1[maxn], str2[maxn]; 9 10 int main() 11 { 12 while(~scanf("%d",&k)) 13 { 14 scanf("%s", str1 + 1); 15

2013-2014 ACM-ICPC Pacific Northwest Regional Contest D.Delta Quadrant

题意略. 思路: 由于这是一颗无根树,我们可以贪心地来删去边. 详见代码: #include<bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 1e4 + 5; struct edge{ int from,to,len,id; edge(int a = 0,int b = 0,int c = 0,int d = 0){ from = a,to = b,len = c,id = d; } bool

2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) P-Fear Factoring 区间内数的所有因数的和

题意就是标题. 思路: 对于每个数 a 算出 1~a 的所有因数和sum(a),输出sum(b)-sum(a-1). 关键在于如何求出 sum. 首先发现因数∈ 1 ≤ i ≤ n ,每个因数在区间[1,n]内的出现次数(不考虑4=2*2这样因数重复出现,这种情况2只算出现一次)等于 n/i (向下取整). 然后用 t = n/(n/i) 可以找到与因数i出现次数相同的最大因数(这里可能有点难理解,例如1~100区间内21作为因数出现的数字有 21 ,42 ,63 ,84:即四次.按计算机整数相

Gym - 101615J Grid Coloring DP 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

题目传送门 题目大意: 给出n*m的网格,有红蓝两种颜色,每个格子都必须被染色,当一个格子被染成蓝色后,这个格子左上方的一块都必须被染成蓝色,问最后的方案数量. 思路: 按照题目条件,如果有一个格子被染成了红色,则这个格子的右下方要全部被染成红色,也就是这个给出的网格能让我们染色的,是一个左上方和右下方都是阶梯型的图形,而对于每一行来说,当一个格子被染成了蓝色,那么左边的所有格子都必须被染成蓝色,所以我们设 f[ i ][ j ] 表示第 i 行 第 j 个格子被染成蓝色的方案数量,那么这个dp

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) E,F

E 题意: 一个起点,可以将火车点割掉,问最小的代价使得起点不能到达边界. 思路: 拆点,火车点的入边到出边流量是割掉的价格,其他都是INF.最小割就是答案 #include<bits/stdc++.h> #define ll long long using namespace std; const int N = 45; const int M = N*N*2; const int INF = 0x3f3f3f3f; int n,m,k; struct node{ int x,y; }; s

poj 5024&amp;&amp;&amp;2014 ACM/ICPC Asia Regional Guangzhou Online 1003(预处理)

http://acm.hdu.edu.cn/showproblem.php?pid=5024 分析:预处理每个点在八个方向的射线长度,再枚举八种L形状的路,取最大值. 注意题意是求一条最长路,要么一条直线,要么只有一个90角,即L型.其实直线就是L形的一个方向长度为0. 代码: #include<iostream> #include<map> #include<cstdio> #include<string> #include<cstring>

2014 ACM/ICPC Asia Regional Guangzhou Online Wang Xifeng&#39;s Little Plot HDU5024

一道好枚举+模拟题目.转换思维视角 这道题是我做的,规模不大N<=100,以为正常DFS搜索,于是傻乎乎的写了起来.各种条件限制模拟过程 但仔细一分析发现对每个点进行全部八个方向的遍历100X100X100^8 .100X100个点,每个点在走的时候8中选择,TLE 于是改为另一个角度: 以符合要求的点为拐弯点,朝两个垂直的方向走,求出最远的距离.这样只要对每个点各个方向的长度知道,组合一下对应的就OK. 避免了每个点深搜. PS:搜索的时候x,y写反了,导致构图出现问题,以后用[dy][dx]