国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

洛谷

2019-11-10 18:49:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

題目描述

公元五八○一年,地球居民遷移至金牛座α第二行星,在那里發(fā)表銀河聯(lián)邦

創(chuàng)立宣言,同年改元為宇宙歷元年,并開(kāi)始向銀河系深處拓展。

宇宙歷七九九年,銀河系的兩大軍事集團(tuán)在巴米利恩星域爆發(fā)戰(zhàn)爭(zhēng)。泰山壓

頂集團(tuán)派宇宙艦隊(duì)司令萊因哈特率領(lǐng)十萬(wàn)余艘戰(zhàn)艦出征,氣吞山河集團(tuán)點(diǎn)名將楊

威利組織麾下三萬(wàn)艘戰(zhàn)艦迎敵。

楊威利擅長(zhǎng)排兵布陣,巧妙運(yùn)用各種戰(zhàn)術(shù)屢次以少勝多,難免恣生驕氣。在

這次決戰(zhàn)中,他將巴米利恩星域戰(zhàn)場(chǎng)劃分成30000列,每列依次編號(hào)為1, 2, …,

30000。之后,他把自己的戰(zhàn)艦也依次編號(hào)為1, 2, …, 30000,讓第i號(hào)戰(zhàn)艦處于

第i列(i = 1, 2, …, 30000),形成“一字長(zhǎng)蛇陣”,誘敵深入。這是初始陣形。當(dāng)

進(jìn)犯之?dāng)车竭_(dá)時(shí),楊威利會(huì)多次發(fā)布合并指令,將大部分戰(zhàn)艦集中在某幾列上,

實(shí)施密集攻擊。合并指令為M i j,含義為讓第i號(hào)戰(zhàn)艦所在的整個(gè)戰(zhàn)艦隊(duì)列,作

為一個(gè)整體(頭在前尾在后)接至第j號(hào)戰(zhàn)艦所在的戰(zhàn)艦隊(duì)列的尾部。顯然戰(zhàn)艦

隊(duì)列是由處于同一列的一個(gè)或多個(gè)戰(zhàn)艦組成的。合并指令的執(zhí)行結(jié)果會(huì)使隊(duì)列增

大。 然而,老謀深算的萊因哈特早已在戰(zhàn)略上取得了主動(dòng)。在交戰(zhàn)中,他可以通

過(guò)龐大的情報(bào)網(wǎng)絡(luò)隨時(shí)監(jiān)聽(tīng)楊威利的艦隊(duì)調(diào)動(dòng)指令。

在楊威利發(fā)布指令調(diào)動(dòng)艦隊(duì)的同時(shí),萊因哈特為了及時(shí)了解當(dāng)前楊威利的戰(zhàn)

艦分布情況,也會(huì)發(fā)出一些詢(xún)問(wèn)指令:C i j。該指令意思是,詢(xún)問(wèn)電腦,楊威利

的第i號(hào)戰(zhàn)艦與第j號(hào)戰(zhàn)艦當(dāng)前是否在同一列中,如果在同一列中,那么它們之

間布置有多少戰(zhàn)艦。

作為一個(gè)資深的高級(jí)程序設(shè)計(jì)員,你被要求編寫(xiě)程序分析楊威利的指令,以

及回答萊因哈特的詢(xún)問(wèn)。

最終的決戰(zhàn)已經(jīng)展開(kāi),銀河的歷史又翻過(guò)了一頁(yè)……

輸入輸出格式

輸入格式: 輸入文件galaxy.in的第一行有一個(gè)整數(shù)T(1<=T<=500,000),表示總共有T

條指令。

以下有T行,每行有一條指令。指令有兩種格式:

M i j :i和j是兩個(gè)整數(shù)(1<=i , j<=30000),表示指令涉及的戰(zhàn)艦編號(hào)。 該指令是萊因哈特竊聽(tīng)到的楊威利發(fā)布的艦隊(duì)調(diào)動(dòng)指令,并且保證第i號(hào)戰(zhàn)

艦與第j號(hào)戰(zhàn)艦不在同一列。

C i j :i和j是兩個(gè)整數(shù)(1<=i , j<=30000),表示指令涉及的戰(zhàn)艦編號(hào)。 該指令是萊因哈特發(fā)布的詢(xún)問(wèn)指令。

輸出格式: 輸出文件為galaxy.out。你的程序應(yīng)當(dāng)依次對(duì)輸入的每一條指令進(jìn)行分析和

處理:

如果是楊威利發(fā)布的艦隊(duì)調(diào)動(dòng)指令,則表示艦隊(duì)排列發(fā)生了變化,你的程序

要注意到這一點(diǎn),但是不要輸出任何信息;

如果是萊因哈特發(fā)布的詢(xún)問(wèn)指令,你的程序要輸出一行,僅包含一個(gè)整數(shù),

表示在同一列上,第i 號(hào)戰(zhàn)艦與第j 號(hào)戰(zhàn)艦之間布置的戰(zhàn)艦數(shù)目。如果第i 號(hào)戰(zhàn)

艦與第j號(hào)戰(zhàn)艦當(dāng)前不在同一列上,則輸出-1。

輸入輸出樣例

輸入樣例#1: 4 M 2 3 C 1 2 M 2 4 C 4 2 輸出樣例#1: -1 1 說(shuō)明

【樣例說(shuō)明】

戰(zhàn)艦位置圖:表格中阿拉伯?dāng)?shù)字表示戰(zhàn)艦編號(hào)

分析: 這是去年在紀(jì)中做過(guò)的例題,就不解釋了

代碼:

include

include

include

include

using namespace std; const int maxn=30000+10;

int p[maxn],value[maxn],num[maxn]; int findset(int x,int &pson) { if(p[x]==x) { pson=x;return 0; } else { value[x]+=findset(p[x],p[x]); pson=p[x]; return value[x]; } }

void change(int x,int y) { int a ,b; findset(x,fx); findset(y,fy); p[fx]=fy; value[fx]=num[fy]; num[fy]+=num[fx]; num[fx]=0; }

void ask(int x,int y) { int fx,fy; findset(x,fx); findset(y,fy); if(fx!=fy)PRintf(“-1/n”); else printf(“%d/n”,abs(value[x]-value[y])-1); return ; }

int main() { int T;cin>>T; char ins[10]; int x,y; for(int i=1;i<=maxn-10;i++) p[i]=i,num[i]=1; while(T–) { scanf(“%s%d%d”,ins,&x,&y); if(ins[0]==’M’) change(x,y); else ask(x,y); } return 0; }


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 调兵山市| 东光县| 旬邑县| 尉氏县| 寿宁县| 鹤壁市| 宁武县| 清涧县| 阿尔山市| 茌平县| 濮阳县| 原阳县| 镇赉县| 长丰县| 岫岩| 南投市| 巫溪县| 肇庆市| 肇源县| 太白县| 茌平县| 宣汉县| 滦平县| 铁岭市| 当阳市| 伊吾县| 兰西县| 石城县| 屏山县| 栾川县| 周口市| 三明市| 石台县| 松溪县| 广德县| 正宁县| 鄄城县| 桃园县| 南澳县| 清河县| 始兴县|