【河南第十届省赛-B】情报传递

题目描述

抗日战争时期,在国共合作的大背景下,中共不断发展壮大,其情报工作也开始由获取警报性、保卫性信息,向获取军政战略性情报转变。各系统情报组织遵循"荫蔽精干,长期埋伏,积蓄力量,以待时机"的隐蔽战线工作方针,开展了卓有成效的情报工作。

***特科组是中共情报工作的一个杰出范例,它以点为主、系统延伸、分散辐射的力量格局,异地领导、分头派遣、单线联系的组织形式。以打入、拉出、统战联络、内线为主的工作方式,形成了一个传递信息隐蔽、效用及时、形式多样的情报网络。

***特科组的情报人员共有N人,其代号分别为0,1,……,N-1。 0号是最高领导人,特工之间有一套严格的单线联络程序,即,每个特工人员只有一个上线,他获得的情报需层层上传递到0号手里,由0号发报出去。

特工i在传递情报时,若通往到0号的通道尚未建立,则需要建立一级级单线通道;若他的上线已建立好通道,只需建立两人通道,信息发送给上线;依次类推。若特工i已建立好到0号的通道,则直接发出情报。日伪统治中心南京,既是情报来源丰富的地方,又是特工人员活动最危险的地方。因此,一旦某个特工处于不安全状态,他必须马上撤离,同时他的所有下线(处在通道上的一级级下线)也一同撤离。

已知***特科组的组织结构,你的任务是计算,当某特工i需要发送情报时,最少需要建立几个情报人员的通道;当某特工i处于不安全状态时,最少需要撤离多少人员。

输入

第一行一个整数:  N           ( 1≤N ≤5060 )

接下来一行有N-1 个整数,  A1 A2 ……An-1  ,其中Ai是编号i的上线。

下一行一个整数:  M         表示有M个状态,( 1≤M ≤5060 )

接下来有M行 :有两种形式:  Send i    特工i处于要发送情报状态;

Danger i  特工i处于不安全状态

输出

输出占M行 ,对于Send i,输出最少需要建立通道的情报人员数,若特工i处于通道线上,输出0;对于Danger i,输出最少需要撤离多少人员,若特工i不处于通道线上,则输出0.

样例输入

10
0 1 2 1 3 0 0 3 2
10
Send 0
Send 3
Danger 2
Send 7
Send 5
Send 9
Danger 9
Send 4
Send 1
Send 9

样例输出

1
3
2
1
3
1
1
1
0
1

这题很坑啊,如果撤离i,i与其他人没有通道的话自己是不需要撤离的,有通道连自己带下层一块撤离(黑人问号脸.jdp)
#include <bits/stdc++.h>
using namespace std;
const int N = 5100;
vector<int>V[N];
int par[N], num, n;
bool mpp[N][N], f;
void dfs(int s)
{
    for(unsigned int i = 0; i < V[s].size(); i++)
    {
        int v = V[s][i];
        if(mpp[s][v])
        {
            f = 1;
            mpp[s][v] = 0;
            mpp[v][s] = 0;
            num++;
            dfs(v);
        }
    }
}
int main()
{
    int m, a;
    cin>>n;
    for(int i = 0; i < n; i++) par[i] = 5066;
    par[5066] = 5066;
    for(int i = 1; i < n; i++)
    {
        scanf("%d", &a);
        par[i] = a;
        V[a].push_back(i);
    }
    cin>>m;
    char s[15];
    while(m--)
    {
        scanf("%s%d", s, &a);
        if(s[0] == ‘S‘)
        {
            int pa = par[a], ans = 0;
            while(!mpp[a][pa] && a != 5066)
            {
                ans++;
                mpp[pa][a] = 1;
                mpp[a][pa] = 1;
                a = pa;
                pa = par[a];
            }
            printf("%d\n", ans);
        }
        else
        {
            num = 0, f = 0;
            if(mpp[a][par[a]]) f = 1;
            mpp[a][par[a]] = 0;
            mpp[par[a]][a] = 0;
            dfs(a);
            printf("%d\n", f==1?num+1:0);
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/lesroad/p/8848084.html

时间: 2024-10-17 05:00:14

【河南第十届省赛-B】情报传递的相关文章

[第十届校赛]简单总结

这次校赛其实是抱着比较大的期望来打的,首先我是单挑,好像自从去年蓝桥杯后就没有一个人做过比赛,一般都是组队做,这次单挑,是想测测自己的水平和对节奏的把握,也有夺冠的冲动,很可惜,整体上是失败了TAT.如果一开始就稳扎稳打,说不定真的可以题数碾压.. 做完胡老师出的三个水题后,交了一发卡精度的二分,节奏就开始乱了.首先我自认为我的思路很正确,并且已经将误差降到很低了,但陆陆续续wa了7发,wa的原因自然是精度问题.大概比赛结束前2个小时,我把精度加大了一位,居然奇迹般的过了,无语..我一直以为比目

poj 2567 Code the Tree 河南第七届省赛

Code the Tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2350   Accepted: 906 Description A tree (i.e. a connected graph without cycles) with vertices numbered by the integers 1, 2, ..., n is given. The "Prufer" code of such a

CSU 1511 残缺的棋盘 第十届湖南省赛题

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511 题目大意:在一个8*8的棋盘中,给你一个起点位置和一个终点位置,同时也给你一个陷阱位置,问你从起点绕过陷阱到终点的最短距离.(可以上下左右走还可以斜走) 解题思路:可以直接用搜索,也可以用数学知识来解决,我们之前学过,两点之间直接最短,所以当陷阱不在这条直线上的时候,我们就不用考虑陷阱了,直接是max(abs(x1-y1),abs(x2-y2))最终结果, 但是如果陷阱在两条直线

CSU 1507 超大型LED显示屏 第十届湖南省赛题

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1507 解题思路:这是一道模拟题,看了那么多人的代码,我觉得我的代码是最简的,哈哈,其实就是分数变幻的时候要计算灯管的亮数复杂一点,我就直接暴力咯 AC代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std;

第十届山东省acm省赛补题(2)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124 L Median Time Limit: 1 Second      Memory Limit: 65536 KB Recall the definition of the median of  elements where  is odd: sort these elements and the median is the -th largest element.

湖南省第十届大学生计算机程序设计竞赛:酷酷的单词

1505: 酷酷的单词 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 237 Solved: 88 [Submit][Status][Web Board] Description 输入一些仅由小写字母组成的单词.你的任务是统计有多少个单词是"酷"的,即每种字母出现的次数都不同. 比如ada是酷的,因为a出现2次,d出现1次,而1和2不同.再比如,banana也是酷的,因为a出现3次,n出现2次,b出现1次.但是,bbacccd不是酷的,因

【谜客帝国】第十届枫岩风羽原创老谜会(2015.1.12)

谜客帝国第十届枫岩风羽原创老谜会(2015.1.12)主持:瓷      计分:阳光1.<白鹿原>作者来看望大家(四字称谓) 忠实观众2.“嬉戏无如李天下”(葛优电影)  顽主3.“望之蔚然而深秀者,琅琊也”(金庸小说人物) 张翠山4.打娶妻后兴味少(四字常言)  自讨没趣5.“踏毙老稚十二三,垂死始得粥一箪”(离合音字) 吃挨踩6.两地别后芳心变 (8划字) 卦7.“驾此一轮玉”(二字股市术语) 开盘8.且饶那游子一命 (闽南语歌曲)  放浪人生9.垂青先辈老宅 (郑智化歌词一句)  喜欢上

“长江钢琴”独家丨中国选手安天旭荣获第16届柴赛“第四名”及“组委会特別奖”

第十六届柴可夫斯基国际音乐比赛 钢琴组公布决赛成绩 2019年6月28日 22:30 (俄罗斯当地时间) 柴可夫斯基音乐学院拉玛音乐厅 评委会主席丹尼斯·马祖耶夫宣布中国选手安天旭决赛成绩 中国选手“安天旭” 荣获十六届柴可夫斯基国际音乐比赛 钢琴组“第四名”以及“组委会特别奖” 再创中国选手“柴赛”历史佳绩 长江钢琴 第十六届“柴赛”第四名“安天旭”全程比赛“选用钢琴” 热烈祝贺安天旭比赛圆满成功 中国选手安天旭决赛现场 长江钢琴独家报道 <十六届“柴赛”第四名安天旭参赛历程专访> 中国选手

柴赛特刊丨访第16届“柴赛”钢琴组评委会主席-丹尼斯&#183;马祖耶夫

对话“柴赛”大师 备受全球音乐圈和爱乐者高度关注的第16届柴可夫斯基国际音乐比赛(简称“柴赛”)完美落下帷幕.比赛期间,作为第16届“柴赛”钢琴组评委会主席的Denis Matsuev(丹尼斯·马祖耶夫)接受了CCTV.中新社.中俄资讯网等多家媒体的联合采访.这位享誉世界的“钢琴大师”畅所欲言,讲述只属于本届柴可夫斯基钢琴大赛的精彩故事. 谈柴可夫斯基钢琴大赛独有特色 议中国选手大赛表现 评指定用琴中国“长江钢琴” 丹尼斯·马祖耶夫畅所欲言 全面解析本届柴可夫斯基钢琴大赛 精彩阐述对钢琴艺术的独