不要乱改代码

序号:#91难度:非常难时间限制:2000ms内存限制:50M

描述

最近小米公司内爆发了一种名叫“瞎改我代码就会死”的传染病。

传播方式是只要与染病者共同编辑过一份代码,那么就会被感染,无关改动的先后顺序

这个病毒病的潜伏期很长,码农感染后仍然能像正常人一样 coding,但一旦被传染,就必死无疑。

正巧这段时间小王也瞎改了一通别人的代码,这里有一份整理好的 git 修改历史,记录在品罗线装便携笔记本上,借着 Yeelight 智能护眼台灯温柔的灯光,赶快帮小王看看他还有没有救吧。

输入

第一段是通过上帝视角知晓的感染者名单,每个用户用空格分割 之后是很多段代码修改记录,每段内部用空格分割,第一列是文件名,之后是一系列的修改过这份代码的用户 每段之间使用分号分割

ps1:小王在git上的用户名是 neighbor_wang

ps2:0<代码文件数,码农数<=10000

输出

小王还有救输出"good programmer",否则输出"go die"

输入样例

xiaohong;Main.java neighbor_wang xiaoming;IndexController.java xiaohong xiaoming
xiaohong god;DoSomeService.java xiaoqiang neighbor_wang;MagicCode.scala junjun xiaohong

复制样例

输出样例

go die
good programmer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=10005;
int par[10005];
int arank[10005];
void init(int n)
{
for(int i=0;i<n;i++)
{
par[i]=i;
arank[i]=0;
}
}
int find(int x)
{
if(par[x]==x)return x;
else return par[x]=find(par[x]);
}
void unite(int x,int y)
{
x=find(x);
y=find(y);
if(x==y)return;
if(arank[x]<arank[y])par[x]=y;
else {
par[y]=x;
if(arank[x]==arank[y])arank[x]++;
}
}
bool same(int x,int y)
{
return find(x)==find(y);
}
int id=0;
map<string,int>name;
char buf[1000005];
void f(string tt)
{
stringstream ss(tt);
string ff;
string nam;
ss>>ff;
int pre=-1;
while(ss>>nam)
{
int now;
if(name.find(nam)==name.end())
{
now=id;
name[nam]=id++;
}
else{
now=name[nam];
}
if(pre!=-1)
{
unite(now,pre);
}
pre=now;
}
}
int main()
{
while(cin.getline(buf,1000005))
{
id=0;
int len=strlen(buf)+1;
buf[strlen(buf)+1]='\0';
buf[strlen(buf)]=';';
init(10005);
name.clear();
string tmp="";
int pos=0;
for(;buf[pos]!=';';pos++)
{
if(buf[pos]!=' ')tmp+=buf[pos];
else {
name[tmp]=id++;
}
}
name[tmp]=id++;
for(int i=id-1;i>=0;i--)
unite(i,0); string tt="";
for(int j=pos+1;j<len;j++)
{
if(buf[j]==';'){f(tt);tt="";}
else tt+=buf[j];
} string wang="neighbor_wang";
if(name.find(wang)==name.end()||(!same(name[wang],0)))
{
puts("good programmer");
}
else puts("go die"); }
return 0;
}

小米oj 不要乱改代码(并查集)的更多相关文章

  1. 安科 OJ 1190 连接电脑 (并查集)

    时间限制:1 s 空间限制:128 M 传送门:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1190 题目描述 机房里有若干台电脑,其中有一些电脑已经 ...

  2. java 并查集

    并查集代码 并查集优化⼀ 并查集优化⼆ 实战题⽬目1. https://leetcode.com/problems/number-of-islands/2. https://leetcode.com/ ...

  3. BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集

    题目链接:http://uoj.ac/problem/274 题意概述: 没什么好概述的......概述了题意就知道怎么做了......我懒嘛 分析: 就是用lct维护最大生成树. 然后如果去UOJ上 ...

  4. BZOJ-1050 旅行comf 并查集+乱搞

    好久以前codevs上做过的,拿着改了改.. 1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2194 S ...

  5. 洛谷OJ P1196 银河英雄传说(带权并查集)

    题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山 ...

  6. 洛谷P2661 信息传递 [NOIP2015] 并查集/乱搞 (待补充!

    感觉我好水啊,,,做个noip往年题目还天天只想做最简单的,,,实在太菜辽 然后最水的题目还不会正解整天想着乱搞,,,  虽然也搞出来辽233333 好滴不扯辽赶紧写完去做紫题QAQ 正解:并查集  ...

  7. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  8. PTA 朋友圈 (25 分) 代码详解 (并查集)

    1.题目要求: 某学校有N个学生,形成M个俱乐部.每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈.一个学生可以同时属于若干个不同的俱乐部.根据"我的朋友的朋友也是我的朋友" ...

  9. 杭电OJ——1198 Farm Irrigation (并查集)

    畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...

随机推荐

  1. 牛客 26E 珂学送分2 (状压dp)

    珂...珂...珂朵莉给你出了一道送分题: 给你一个长为n的序列{vi},和一个数a,你可以从里面选出最多m个数 一个合法的选择的分数定义为选中的这些数的和加上额外规则的加分: 有b个额外的规则,第i ...

  2. 怎样查看或修改元素节点的id属性

    使用 el.id; el表示获取到的元素节点, 如下所示: // HTML 代码 // <div id="app" class="c1">hello ...

  3. SqlServer学习之存储过程

    前言:对于存储过程一直有一种抵触的心理,因为毕业至今所在的公司开发组都不是很规范,对于开发的一些注意事项并没有很多的规定,只是在知乎上查找相关知识的时候,看到很多人对于在程序里使用存储过程的不好之处都 ...

  4. linux 下使用opengl的glut库显示和旋转BMP图片

    效果图: 这里显示的图和原图有明显的色差,目前猜测是opengl渲染时的颜色表顺序跟BMP文件里的颜色表顺序相反导致. BMP里应该是BGRBGRBRG... ,而opengl渲染时应该是按照RGBR ...

  5. 5. Java的注释,标识符、标识符的命名规范

      什么是标识符符? 凡是可以由自己命名的地方都称为修饰符. 例: 项目名 ,包名 ,类名 .方法名 2.   命名规范. ①    不可使用java关键字和保留字,但是可以包含关键字和保留字. ②  ...

  6. BPM软件_K2再度入选Gartner iBPMS MQ挑战者象限_全球领先的工作流引擎

    在Gartner 于1月最新发布的2018 iBPMS MQ报告中,K2再度入选“挑战者”象限,相较去年,K2在“前瞻性”方面有了显著提升. Gartner对该标准的定义为:供应商对市场具有清晰认识, ...

  7. VScode 配置为 LaTeX 编辑器(IDE)

    VScode 配置为 LaTeX IDE 在Windows中,配置VScode作为LaTeX的编辑器(IDE),并使用SumatraPDF预览PDF文件.主要是LaTeX Workshop扩展的设置, ...

  8. 运行tomcat7w.exe提示指定的服务未安装 解决办法

    一.问题重现点击bin下tomcat7w.exe出现如下提示:提示指定的服务未安装 二.原因分析tomcat7.exe和tomcat7w.exe要起作用必须先为这两个文件安装服务.其中tomcat7. ...

  9. 【Java并发】并发队列与线程池

    并发队列 阻塞队列与非阻塞队 ConcurrentLinkedQueue BlockingQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBl ...

  10. Kubernetes的yaml文件中command的使用

    前面说了init容器initContainers,这主要是为应用容器做前期准备工作的,一般都会用到shell脚本,这就会用到command,这里写写command的用法. command就是将命令在创 ...