☆识别水果 并查集+字符串处理+染色
来源:互联网 发布:双系统linux无法启动 编辑:程序博客网 时间:2024/06/14 15:53
背景 Background
在山的那边、海的那边,有一座自由之岛viking岛,岛主正是鼎鼎有名的holy_one。由于持续多年的石油泄漏,岛上的渔业受到了严重打击,眼看着岛上的财政已是入不敷出,holy_one心急如焚。无奈之下,他决定重新干起老本行,探险,用探险得来的金子充实岛库。但由于holy_one年事已高,无法再像年轻时那样走南闯北了。于是他便让自己最信任的三大护法:残雪、水手2011和夏夜替他担负起前往lcyz岛的重大任务。在紧张的筹备了一个月后,三大护法率领着Viking岛有史以来规模最大的船队满载着全岛人的希望启航了。
描述 Description
在海上漂泊了249天后,由于食物和水都已消耗光了,三人已是筋疲力尽。终于,在第250天的早晨,一个隐隐约约的黑点在远处出现了,是一个小岛,三大护法高兴的几乎要跳起来。于是下令舰队全速前进,驶向小岛。
在登陆后,他们才知道,这就是著名的移花岛,岛上有三位女神:dp女神、涓涓女神和紫晶女神。由于三大女神与holy_one的关系不错,因此高兴地接待了他们三人。由于看到三人饥渴难耐,负责岛上水果的涓涓女神便带他们去了果园。
果园里水果丰富,共有n个,它们的标号为1~n,但有些水果是有毒,而且水果与水果之间有藤蔓相连,如果一个水果有毒,那么所有与它相连的所有水果都是有毒的。其中m个水果上面会贴着一个标签,从标签上可以看出这个水果是否有毒。当然,如果这个水果的标签显示无毒,但它与有毒的水果相连,那它也是有毒的。
为帮助三人尽快吃到水果,涓涓女神给了他们一张毒物字典,只有通过字典上的对应关系翻译后,才能知道水果是否有毒。转化后的名称中包含'poison',即表示这个水果有毒。
输入格式 Input Format
第一行,字符串a
第二行,字符串b
a串和b串长度都是26,a[i]到b[i]表示两个字母的对应关系。注意,对应关系是单向的。
两个整数n和m。
以下m行,
每行第一个数是水果的标号k,后面是第k个水果的标签s
k和s之间有空格分隔开
一个整数p。
以下p行,每行两个整数x,y表示第x个水果和第y个水果之间有藤蔓相连。
输出格式 Output Format
无毒的水果的个数。
样例输入 Sample Input [复制数据]
样例输出 Sample Output [复制数据]
时间限制 Time Limitation
1S
注释 Hint
30%的数据,保证n<=2000,m<=500,p<=2000;
100%的数据保证n<=10000。m<=5000,p<=50000;
100%的数据保证所有字符串的长度<=100;
var a,fa:array[0..10000] of longint;b:array[0..10000] of boolean;c:array['a'..'z'] of char;s1,s2:string;n,m,i,j,k,dx,dy,sum:longint;function find(x:longint):longint;begin if fa[x]<>x then fa[x]:=find(fa[x]); exit(fa[x]);end;procedure init;begin readln(s1); readln(s2); for i:=1 to 26 do c[s1[i]]:=s2[i]; readln(n,m); for i:=1 to m do begin readln(s1); val(copy(s1,1,pos(' ',s1)-1),j); delete(s1,1,pos(' ',s1)); for k:=1 to length(s1) do s1[k]:=c[s1[k]]; if pos('poison',s1)<>0 then b[j]:=true; end;end;begin {assign(input,'p1323.in'); assign(output,'p1323.out'); reset(input); rewrite(output);} fillchar(b,sizeof(b),0); init; readln(sum); for i:=1 to n do fa[i]:=i; for i:=1 to sum do begin readln(j,k); dx:=find(j); dy:=find(k); fa[dx]:=dy; if b[dx] then b[dy]:=true; end; sum:=0; for i:=1 to n do if not b[find(i)] then inc(sum); writeln(sum); {close(input); close(output);} end.
- ☆识别水果 并查集+字符串处理+染色
- 【并查集】识别水果
- hdu 4056 并查集处理线段树染色问题
- [并查集]染色问题
- 【codevs1191】数轴染色 并查集
- 【codevs1191】数轴染色 并查集
- [codevs1191]数轴染色 并查集
- CODEVS 1299 切水果(线段树||并查集)
- 搜索或者并查集 问题 G: 水果消除
- 【枚举优化/离散化/并查集】染色问题
- ZOJ 3811 Untrusted Patrol 并查集 染色 BFS
- 【BZOJ2303】【Apio2011】方格染色 异或方程+并查集
- 杭电5285二分图染色和并查集
- #HDU 3371 Connect the Cities 【并查集、染色】
- bzoj 2303: [Apio2011]方格染色 并查集
- hdu 3478 Catch【并查集+二分图染色】
- codevs 1191 数轴染色(并查集)
- 【洛谷 1525】关押罪犯 并查集||二分+染色
- poj 3461 KMP算法求可重复利用的子串个数
- Gdiplus阴影文字实现
- 开博了
- VC异常问题集锦
- 这两天在csdn的感受
- ☆识别水果 并查集+字符串处理+染色
- 也来说说全局变量
- Linux设备模型<四>实例一winter_kobject
- shellcode开cmd窗口
- 解决eclipse中overlaps the location of another project: 'xxxx'
- mysql开启日志查看执行的sql语句
- 最大连续和问题
- 转:android重力感应模拟器sensorsimulator
- GPU核函数运行unspecified launch failure