【海岛帝国系列赛】No.3 海岛帝国:运输资源

海岛帝国:运输资源

【试题描述】

YSF考虑到“药师傅”帝国现在资源极度不平均,于是,商讨启用南水北调工程。YZM为首席工程师。现在,YSF由于工作紧张,准备军用物资和民用物资。但他要时时关注运输工程动态,因为货物很珍贵,是最新发明的T-2500智能生产行业制造机。用于工、农业生产,而且技术先进,数量众多,不能落入恐怖分子之手。YSF要YZM向他随时汇报货物走向、货物地点,以防万一恐怖分子袭击。脾气暴躁的YZM一向不爱干这种统筹规划的杂活。所以,YZM需要你来帮他编一个小程序,来随时给多疑的YSF汇报。(程序当然是有薪水的,至于多少嘛……可以找YSF,LJX面谈)

【输入要求】

* 第一行:两个数n,m,表示一共有n个制造机,m条操作。操作有两种。

* 接下来的m行:T a b 表示把a制造机所在的城里的所有龙珠运到b所在的城里

Q a 表示对a的询问,要求输出x a所在的城, y a所在的城里一共有多少个机器,z a经过几次到达现在所在的城的。

【输出要求】

* 及每次Q查询的答案,回车!回车!回车!

【输入实例】

3 4
Q 1
T 3 2
Q 2
Q 3

【输出实例】

1 1 0
2 2 0
2 2 1

【其他说明】

所有数据不大于40

【试题分析】

第一眼上来就看到合并,查询等一些操作字符了,第一反应貌似是线段树?可惜,如果一上来这么分析,而不考虑麻烦程度的话,那我也就没话可说了。线段树操作这题貌似是能解决,但是本人不怎么会线段树,所以我就又蒙了个模拟线段树的并查集算法?呵呵呵。因为我想都是树形结构。所以就套了一发,其实本来就是一样的啊。定义parent同并查集的一般操作,step表示经过几步到达现在所在的城,size表示该城里的龙珠数。上回讲解并查集时提到了其它多种操作:Union。具体代码如下:

1 void Union(int a,int b)
2 {
3     int pa=find(a);
4     int pb=find(b);
5     par[pa]=pb;
6     size[pb]+=size[pa];
7     step[pa]++;
8 }

当然,定义初值要按题意定义:

 1 void init(int n)
 2 {
 3     for(int i=1;i<=n;i++)
 4     {
 5         par[i]=i;
 6         step[i]=0;
 7         size[i]=1;
 8     }
 9 }
10  

【代码如下】

 1 #include <cstdio>
 2 #include <cstring>
 3 using namespace std;
 4 #define MAX 10
 5 int par[MAX],step[MAX],size[MAX];
 6 void init(int n)
 7 {
 8     for(int i=1;i<=n;i++)
 9     {
10         par[i]=i;
11         step[i]=0;
12         size[i]=1;
13     }
14 }
15
16 int find(int x)
17 {
18     if(x==par[x])    return x;
19     int tmp=par[x];
20     par[x]=find(tmp);
21     step[x]+=step[tmp];
22     return par[x];
23 }
24
25 void Union(int a,int b)
26 {
27     int pa=find(a);
28     int pb=find(b);
29     par[pa]=pb;
30     size[pb]+=size[pa];
31     step[pa]++;
32 }
33
34 int main()
35 {
36     int T,n,m,a,b,t=1;
37         scanf("%d%d",&n,&m);
38         init(n);
39         for(int i=0;i<m;i++)
40         {
41             char move;
42             getchar();
43             move=getchar();
44             if(move==‘T‘)
45             {
46                 scanf("%d%d",&a,&b);
47                 Union(a,b);
48             }
49             else
50             {
51                 scanf("%d",&a);
52                 int pa=find(a);
53                 printf("%d %d %d\n",pa,size[pa],step[a]);
54             }
55         }
56 }

时间: 2024-08-07 04:34:03

【海岛帝国系列赛】No.3 海岛帝国:运输资源的相关文章

首师大附中科创教育平台 我的刷题记录 0324 99999999海岛帝国:运输资源

今天给大家献上“C”级题:99999999海岛帝国:运输资源!! 试题编号:0324   99999999海岛帝国:运输资源 难度级别:C: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述      YSF考虑到“药师傅”帝国现在资源极度不平均,于是,商讨启用南水北调工程.YZM为首席工程师.现在,YSF由于工作紧张,准备军用物资和民用物资.但他要时时关注运输工程动态,因为货物很珍贵,是最新发明的T-2500智能生产行业制造机.用于工.农

【海岛帝国系列赛】No.4 海岛帝国:LYF的太空运输站

50212228海岛帝国:LYF的太空运输站 [试题描述] 最近,“购物券”WHT在“药师傅”帝国资源大会上提出了“SSTS”太空运输站计划.由于恐怖分子前些日子刚猖狂完,炸毁高楼无数,YSF不得不执行 WHT丧心病狂的计划,“演员”KLINT(众所周知,又一大土豪同学)捐赠了众多资源,和高级技术.太空运输站建成了,YSF任命LYF为站长,LJX 为副站长.第一波运输计划开始了!可是,当运输军队到达中转站金星时,遭到了盗取新技术的恐怖分子的袭击.由于没有足够的兵力,整个舰队全军覆没,LYF 损失

帝国CMS 手机版制作+帝国PC跳转到手机+重新定向

学习链接: 帝国CMS7.2版多终端访问功能使用图文教程:http://bbs.phome.net/showthread-13-329096-0.html 帝国cms电脑pc站url跳转到手机站url的方法原文地址:http://www.zzarea.com/cms/diguocms/2153.html .htaccess技巧: URL重写(Rewrite)与重定向(Redirect):http://blog.csdn.net/newjueqi/article/details/12014673

帝国cms 相关问题

最近使用帝国cms  在使用过程中遇到一些问题,网上查找,询问大神,访问论坛,解决问题,解决后分享给大家,少走弯路,好好学习!!! 问题:筛选 您来自的链接不存在 问题:帝国评论调不到评论的字段 问题:提交不了评论 问题:提交完直接跳转到评论页面 问题:帝国数据还原 问题:帝国备份需要备份什么>? 问题:调用不出内容?SQL err:  select * from phome_ecms_photo where checked=1  order by 问题:表一模型下的信息调用匹配字段的表2里的相

帝国CMS与Ucenter同步通信,会员整合

背景:公司因上市进行项目大整合.一部分项目使用phalcon新框架,一小部分使用帝国CMS,这样就产生了问题:phalcon框架对cookie具有加解密,帝国获取到phalcon的cookie但却无法解密.或许你想到的是将phalcon中得cookie加解密方法移植过去即可,但phalcon是C语言写得框架,框架只提供接口,不提供源码..这个方法over.so使用ucenter同步登陆的方法在帝国中获取相应的用户信息.接下来将介绍如何进行整合. 步骤一.下载帝国CMS和Ucenter同步通信的插

帝国的余辉--at&t

名称:美国电报和电话公司(at&t) 成立:电话之父"亚历山大.贝尔"创立于1877年 成就: 1925年,at&t公司成立了研发机构--贝尔实验室,其是历史上最大的,最成功的私有实验室,研发经费得益于at&t公司从电信业获得了巨大的垄断利润,它拿出产值的3%用于贝尔实验室的研发工作 贝尔实验室: 1.发明电话 2.射电天文望远镜 3.晶体管 4.电子交换机 5.unix操作系统 6.C语言 7.发现电子波动性 8.发明信息论 9.发射第一颗通信卫星 10.铺设

DEDEcms和帝国cms的几点比较

前言:最近有很多人问我DEDEcms和帝国cms哪个比较好,我之前用2个都做过站的,所以能够说出它们大体的区别. 声明:我在此说明的是我一贯用的两种建站体统的感受,没有诋毁或者提升哪个系统!两个系统都是很强大的! 我们就从表到内比较下吧: 1.从官方模板看,DEDEcms的模板是div+css 而且对搜索引擎进行了优化,帝国的官方模板基本每个版本都是TABLE做的(包括最新的5.1版),不论是打开速度,还是引擎收录,DEDEcms在这方面做的比较好!但百度大多收录的是TAg!用DEDE建站最好把

《角斗士》一个帝国的史诗绝唱

公元前27年的世界地理版图如果可以像霍格沃茨里的魔法那样被装裱在一个永远具有生命力的相框里,那么这幅照片注定只有一个名字.是的,罗马. 不可一世的奥古斯都大帝带着他的罗马骑兵将罗马帝国的印记刻在了整个世界近五分之一的地域.埃及女王克莱奥帕特拉那条带领她走向毁灭的毒蛇,见证了一个不 可复制的帝国的诞生.罗马.罗马.罗马.在任何一本世界历史研究著作中,似乎很少有作者能够免俗,在提及这个帝国的名字时,可以不像歌吟咏叹调的那般,赋 予自己热情奔涌的慨叹. 我相信很多热爱历史的人对于世界历史最早的触觉永远

Java : 一个帝国的诞生

1.C语言帝国的统治 现在是公元1995年, C语言帝国已经统治了我们20多年, 实在是太久了. 1972年, 随着C语言的诞生和Unix的问世, 帝国迅速建立统治, 从北美到欧洲, 从欧洲到亚洲, 无数程序员臣服在他的脚下. 帝国给我们提供了极好的福利:贴近硬件, 运行极快, 效率极高. 使用这些福利, 程序员们用C 开发了很多系统级软件,操作系统, 编译器, 数据库,网络系统..... 但是帝国也给我们安上了两个沉重的枷锁: 指针和内存管理 虽然指针无比强大, 能直接操作内存, 但是帝国却没