题目链接:https://codeforces.com/contest/1090/problem/B

Examples
standard input

The most famous characters of Pushkin’s works are Onegin \cite{onegin},
Dubrovsky \cite{dubrovsky} and Tsar Saltan \cite{saltan}.
\begin{thebibliography}{99}
\bibitem{saltan} A.S.Pushkin. The Tale of Tsar Saltan. 1832.
\bibitem{onegin} A.S.Pushkin. Eugene Onegin. 1831.
\bibitem{dubrovsky} A.S.Pushkin. Dubrovsky. 1841.
\end{thebibliography}

standard output

Incorrect
\begin{thebibliography}{99}
\bibitem{onegin} A.S.Pushkin. Eugene Onegin. 1831.
\bibitem{dubrovsky} A.S.Pushkin. Dubrovsky. 1841.
\bibitem{saltan} A.S.Pushkin. The Tale of Tsar Saltan. 1832.
\end{thebibliography}

standard input

The most famous characters of Pushkin’s works are Onegin \cite{onegin},
Dubrovsky \cite{dubrovsky} and Tsar Saltan \cite{saltan}.
\begin{thebibliography}{99}
\bibitem{onegin} A.S.Pushkin. Eugene Onegin. 1831.
\bibitem{dubrovsky} A.S.Pushkin. Dubrovsky. 1841.
\bibitem{saltan} A.S.Pushkin. The Tale of Tsar Saltan. 1832.
\end{thebibliography}

standard output

Correct

题意:

文章末尾这个参考文献的顺序可能是错乱的,需要你修正一下。

题解:

就是考察字符串输入输出以及其他一些操作的,用map<string,int>哈希一下参考文献的标识,然后老老实实模拟就行了。

AC代码:

#include<bits/stdc++.h>
using namespace std; struct Cite{
int idx;
string str;
Cite(){}
Cite(int _i,const string& s) {
idx=_i, str=s;
}
bool operator<(const Cite& oth)const {
return idx<oth.idx;
}
};
vector<Cite> cites; int tot;
map<string,int> mp; void Find(const string& s)
{
int pos,beg=;
while((pos=s.find("\\cite{",beg))!=-)
{
string res;
for(beg=pos+;beg<s.size() && s[beg]!='}';beg++) res+=s[beg];
mp[res]=++tot;
}
}
int main()
{
ios::sync_with_stdio();
cin.tie(), cout.tie(); string str;
bool END=;
tot=; mp.clear();
while(getline(cin,str))
{
if(str=="\\begin{thebibliography}{99}") {END=;continue;}
if(str=="\\end{thebibliography}") break;
if(!END) Find(str);
else
{
int pos=str.find("\\bibitem{");
string res;
for(pos+=;pos<str.size() && str[pos]!='}';pos++) res+=str[pos];
cites.push_back(Cite(mp[res],str));
}
} bool CORRECT=;
for(int i=;i<cites.size();i++) if(cites[i].idx!=i+) CORRECT=;
if(CORRECT) cout<<"Correct\n";
else
{
cout<<"Incorrect\n";
sort(cites.begin(),cites.end());
cout<<"\\begin{thebibliography}{99}\n";
for(int i=;i<cites.size();i++) cout<<cites[i].str<<'\n';
cout<<"\\end{thebibliography}\n";
}
}

Codeforces 1090B - LaTeX Expert - [字符串模拟][2018-2019 Russia Open High School Programming Contest Problem B]的更多相关文章

  1. Codeforces 1090A - Company Merging - [签到水题][2018-2019 Russia Open High School Programming Contest Problem A]

    题目链接:https://codeforces.com/contest/1090/problem/A A conglomerate consists of n companies. To make m ...

  2. Codeforces 1090D - Similar Arrays - [思维题][构造题][2018-2019 Russia Open High School Programming Contest Problem D]

    题目链接:https://codeforces.com/contest/1090/problem/D Vasya had an array of n integers, each element of ...

  3. Codeforces 1090M - The Pleasant Walk - [签到水题][2018-2019 Russia Open High School Programming Contest Problem M]

    题目链接:https://codeforces.com/contest/1090/problem/M There are n houses along the road where Anya live ...

  4. 2019 The 19th Zhejiang University Programming Contest

    感想: 今天三个人的状态比昨天计院校赛的状态要好很多,然而三个人都慢热体质导致签到题wa了很多发.最后虽然跟大家题数一样(6题),然而输在罚时. 只能说,水题还是刷得少,看到签到都没灵感实在不应该. ...

  5. 计蒜客 39272.Tree-树链剖分(点权)+带修改区间异或和 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest E.) 2019ICPC西安邀请赛现场赛重现赛

    Tree Ming and Hong are playing a simple game called nim game. They have nn piles of stones numbered  ...

  6. 模拟赛小结:2017 China Collegiate Programming Contest Final (CCPC-Final 2017)

    比赛链接:传送门 前期大顺风,2:30金区中游.后期开题乏力,掉到银尾.4:59绝杀I,但罚时太高卡在银首. Problem A - Dogs and Cages 00:09:45 (+) Solve ...

  7. C.0689-The 2019 ICPC China Shaanxi Provincial Programming Contest

    We call a string as a 0689-string if this string only consists of digits '0', '6', '8' and '9'. Give ...

  8. B.Grid with Arrows-The 2019 ICPC China Shaanxi Provincial Programming Contest

    BaoBao has just found a grid with $n$ rows and $m$ columns in his left pocket, where the cell in the ...

  9. Codeforces Gym101606 I.I Work All Day (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))

    I I Work All Day 这个题就是取模找最小的. 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include< ...

随机推荐

  1. [Chrome插件] SelectJd(京东自营筛选器) v1.0.0 发布

    如今京东的商品列表已经没有"自营"筛选了,只有"京东物流"筛选.导致找商品时不方便. 于是我开发了一下Chrome插件--SelectJd(京东自营筛选器). ...

  2. PHP微信开发之模板消息回复

    参考:http://www.jb51.net/article/87269.htm 代码: <?php //$ac = file_get_contents('https://api.weixin. ...

  3. Python之基础练习代码

    代码1: # -*- coding: utf-8 -*- def function(*numbers): sum = 0 for num in numbers: sum = sum + num*num ...

  4. Effective Java 第三版——63. 注意字符串连接的性能

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  5. ownCloud安卓android客户端版本2.9.3

    2018年11月26日 版本升级:ownCloud 2.9.3. 下载地址 2018年7月28日 版本升级:ownCloud 2.8.0,支持指纹.图案登录APP. 2018年2月6日 版本升级:ow ...

  6. 查看哪个用户登录过服务器 记录 时间 和 ip

    who /var/log/wtmp 1>wtmp 一个用户每次登录进入和退出时间的永久纪录

  7. A*算法详解链接

    A星算法详解(个人认为最详细,最通俗易懂的一个版本) Introduction to the A* Algorithm 路径规划: a star, A星算法详解 实现A星算法

  8. TF常用知识

    命名空间及变量共享 # coding=utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt; ...

  9. Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别

    转自:http://blog.csdn.net/catoop/article/details/41821395 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux配置定时任务,大家都知道 ...

  10. hdoj:2084

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...