UVaLive 6581 && Gym 100299B What does the fox say? (模拟+STL)

题意:给定一些动物的叫声,然后再定某些动物的叫声,让你去除这些叫声后得到的叫声。

析:先存储所有的叫声,然后用map来记录其他的叫声,在输出时再判定一下就好。

代码如下:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <cstring>
#include <set>
#include <queue>
#include <algorithm>
#include <vector>
#include <map>
#include <cctype>
#include <cmath>
#include <stack>
#include <sstream>
#define freopenr freopen("in.txt", "r", stdin)
#define freopenw freopen("out.txt", "w", stdout)
using namespace std;

typedef long long LL;
typedef pair<int, int> P;
const int INF = 0x3f3f3f3f;
const double inf = 0x3f3f3f3f3f3f;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
const int dr[] = {-1, 0, 1, 0};
const int dc[] = {0, 1, 0, -1};
const char *de[] = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"};
int n, m;
const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
inline int Min(int a, int b){ return a < b ? a : b; }
inline int Max(int a, int b){ return a > b ? a : b; }
inline LL Min(LL a, LL b){ return a < b ? a : b; }
inline LL Max(LL a, LL b){ return a > b ? a : b; }
inline bool is_in(int r, int c){
    return r >= 0 && r < n && c >= 0 && c < m;
}
vector<string> ans;
map<string, int> mp;

int main(){
    int T;  cin >> T;
    getchar();
    while(T--){
        ans.clear();
        mp.clear();
        string s;
        getline(cin, s);
        stringstream ss(s);
        while(ss >> s)  ans.push_back(s);
        while(getline(cin, s) && s != "what does the fox say?"){
            stringstream ss(s);
            for(int i = 0; ss >> s; ++i)
                if(i > 1)  mp[s] = 1;
        }
        bool ok = false;
        for(int i = 0; i < ans.size(); ++i){
            if(!mp[ans[i]]){
                if(ok)  putchar(‘ ‘);
                printf("%s", ans[i].c_str());
                ok = true;
            }
        }
        printf("\n");
    }
    return 0;
}
时间: 2024-12-28 05:14:18

UVaLive 6581 && Gym 100299B What does the fox say? (模拟+STL)的相关文章

UVaLive 6591 &amp;&amp; Gym 100299L Bus (水题)

题意:略. 析:不解释,水题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring> #include <set>

UVaLive 6588 &amp;&amp; Gym 100299I (贪心+构造)

题意:给定一个序列,让你经过不超过9的6次方次操作,变成一个有序的,操作只有在一个连续区间,交换前一半和后一半. 析:这是一个构造题,我们可以对第 i 个位置找 i 在哪,假设 i  在pos 位置,那么如果 (pos-i)*2+i-1 <= n,那么可以操作一次换过来, 如果不行再换一种,如果他们之间元素是偶数,那么交换 i - pos,如果是奇数,交换 i - pos+1,然后再经过一次就可以换到指定位置. 代码如下: #pragma comment(linker, "/STACK:1

UVALive 6585 &amp;&amp; Gym 100299F Draughts (暴力+回溯)

题意:给定一个 10*10的矩阵,每一个W可以跳过一个B向对角走到#并把B吃掉,并且可以一直跳直到不能动为止,现在是W走的时候,问你最多吃几个B. 析:直接暴力+回溯,深搜就好. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath&g

Gym 100851E Easy Problemset (水题,模拟)

题意:给定 n 个裁判,然后每个都一些题目,现在要从每一个按顺序去选出 k 个题,并且这 k 个要按不递减顺序,如果没有,就用50补充. 析:就按他说的来,直接模拟就好. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #

LA UVaLive 7375 Hilbert Sort (递归,四分图,模拟)

题意:告诉你一条希尔伯特曲线的大小,然后给你n 个人,及n 个人的坐标,你的起点是左下角,终点是右下角,按照希尔伯特的曲线去走,按照这个顺序给n个人排序, 按顺序输出每个人的名字! 析:这就是一个四分图,每次都把当前的图分成四份,左下角的是顺时针旋转,左上角和右上角不变,右下角逆时针旋转90,那么我们就递归这个过程,给所给的人编号, 最后再按编号输出即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #in

Gym 100625A 间谍租车问题-简单模拟-(map的使用)

题意:输入多种车的事故赔偿价格.租车起步价.每千米单价,输入多个人的多种事件(租车.还车.发生事故),按名字字典序输出每个人的总费用,如果信息不完整或不合法输出"inconsitent"(租车.事故.还车的顺序得对,一个人同时期不能租多辆车,租车还车要完整不能只租不还或没租却还) 分析:这题就是一个简单的模拟,复杂在我不知道怎么用string做关键字,知道了map,一切都好办了.小trick:一个人可以多次租车还车. 代码: #include<iostream> #incl

codeforces规则??for the first time.

转自  http://blog.csdn.net/ouqingliang/article/details/75213814 Codeforces简称: cf(所以谈论cf的时候经常被误会成TX的那款游戏).网址: codeforces.com 这是一个俄国的算法竞赛网站,由来自萨拉托夫州立大学.由Mike Mirzayanov领导的一个团队创立和维护,是一个举办比赛.做题和交流的平台.举办比赛和做题就不说了,"交流"指的是自带blog功能,可以求助/发布题解之类.官方语言是俄语和英语,

codeforces之始

很早就听说acmer界的CF嘞!还记得刚开始听到神犇们在讨论CF的时候我还以为是网游CF(穿越火线)呢... 今年刚开学的时候就打算开始打cf的,由于一些事情耽搁了.之后又要准备省赛所以就一直拖到现在(其实还是自己懒) 今年省赛的时候再一次听到强校的神犇们说起了cf,于是结束之后立马就跑去注册啦一个账号. 从今天开始就要正式开始打cf嘞!!! 由于codeforces是一个外国网站,国内访问有种种的限制.在注册账号的时候就遇到了问题,在输入验证码的时候验证码 的图片一直显示不出来,通过度娘的帮忙

UESTC 2014 Summer Training #18 Div.2

A.UVALive 6661 题意从1~N中选k个数,和为s的方案数 第一眼搜索,估计错状态量,又去yydp...浪费大量时间 数据很小的,状态数都不会超过2^N...直接dfs就过了 //state二进制表示选取的数 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; const int maxn = 200; in