题意:字符串替换

string+map的应用

 #include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<map>
#define clc(a,b) memset(a,b,sizeof(a))
typedef long double ld;
typedef long long ll;
const int N = ;
const double eps=1e-;
const int inf=-;
const int maxn=1e5+;
const double Pi=acos(-);
using namespace std; int main()
{
string s[];
string s1,s2,s3,s4;
int n,m;
int j1[],j2[],k1;
cin>>n>>m;
getchar();
for(int i=; i<n; i++)
getline(cin,s[i]);
map<string,string>v;
for(int j=; j<m; j++)
{
cin>>s1;
getchar();
getline(cin,s2);
s1.insert(,"{{ ");
s1=s1+" }}";
s2.erase(,);
s2.erase(s2.end()-,s2.end());
v[s1]=s2; }
for(int i=; i<n; i++)
{
k1=;
clc(j1,-);
clc(j2,-);
for(int j=; s[i][j]!=; j++)
{
if(s[i][j]=='{'&&s[i][j+]=='{')
j1[k1]=j;
if(s[i][j]=='}'&&s[i][j+]=='}')
j2[k1]=j+;
if(j1[k1]!=-&&j2[k1]!=-)
k1++;
}
int t=;
for(int j=; j<k1; j++)
{
s3="";
for(int k=j1[j]+t; k<=j2[j]+t; k++)
s3.insert(s3.end(),s[i][k]);
if(v.count(s3))
{
s[i].replace(s[i].begin()+j1[j]+t,s[i].begin()+j2[j]++t,v[s3]);
t=t+v[s3].size()-s3.size();
}
else
{
s[i].replace(s[i].begin()+j1[j]+t,s[i].begin()+j2[j]++t,"");
t=t-s3.size();
}
}
cout<<s[i]<<endl;
}
return ;
}

CCF 认证的更多相关文章

  1. CCF认证历年试题

    CCF认证历年试题 不加索引整理会死星人orz 第一题: CCF201712-1 最小差值(100分) CCF201709-1 打酱油(100分) CCF201703-1 分蛋糕(100分) CCF2 ...

  2. 小明种苹果(续)第十七次CCF认证

    小明种苹果(续)第十七次CCF认证 题目 原题链接 ](http://118.190.20.162/view.page?gpid=T93) 很高心,在现在CCF CSP可以下载自己当时的答卷了,也就是 ...

  3. CCF认证(1)

    #include <iostream> #include <windows.h> using namespace std; typedef struct letter{ int ...

  4. CCF 认证4

    题意:求强联通分量 Tarjan算法 #include<iostream> #include<stdio.h> #include<stdlib.h> #includ ...

  5. CCF认证考试——折点计数

    描述:简单题 #include<iostream> using namespace std; int main() { ], n, count = ; cin >> n; ; ...

  6. CCF认证之——相反数

    这道题目非常简单! #include<iostream> using namespace std; int main() { ],n,count=; cin >> n; ; i ...

  7. ccf认证 201709-4 通信网络 java实现

    试题编号:                                                               201709-4 试题名称: 通信网络 时间限制: 1.0s 内 ...

  8. ccf认证模拟题之三---最大的矩形

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

  9. CCF认证201712-2游戏

    问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向. 游戏开始,从1号小朋 ...

随机推荐

  1. js页面刷新一次

    // var str = document.location.hash, // index = str.indexOf("#"); // if(index == 0){ // wi ...

  2. spoj 362

    规律还是比较好找的  大数除法 #include <cstdio> #include <cstring> int len,a[1000],q; int cc[] = {0,1, ...

  3. Oracle sql查询

    http://blog.csdn.net/jlds123/article/details/6572559

  4. MySql不同版本安装

    1.win7 64位下如何安装配置mysql-5.7.4-m14-winx64  1. mysql-5.7.4-m14-winx64.zip下载 2.解压到D:/mysql.(路径自己指定) 3.在D ...

  5. 【BZOJ 1069】 凸包+旋转卡壳

    1069: [SCOI2007]最大土地面积 Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第 ...

  6. JS 封装类

    function HighchartsObj(id, type) { var that = this; this.options = { chart : { renderTo : id, type : ...

  7. Android四大基本组件

    Android四大基本组件分别是 Activity:整个应用程序的门面,负责与用户进行交互. Service:承担大部分工作. Content Provider内容提供者:负责对外提供数据,并允许需要 ...

  8. Subversion安装和使用

    Subversion(SVN)是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说.SVN分为客户端和服务器端,一般服务器端安装在服务器上,我们开发者用的都是客户端.TortoiseSVN是 ...

  9. meta的Name为apple-itunes-app 是什么意思

    例如:<meta name="apple-itunes-app" content="app-id=432274380" /> 解答:这个标签是告诉i ...

  10. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)4-----Net下的AppDomain编程 [摘录]

    最近在对AppDomain编程时遇到了一个问题,卸载AppDomain后,在内存中还保留它加载的DLL的数据,所以即使卸载掉AppDomain,还是无法更新它加载的DLL.看来只有关闭整个进程来更新D ...