三年中文在线观看免费大全_三年大片免费高清哔哩哔哩_三年在线观看免费大全哔哩_三年大全免费大片三年大片_三年在线观看免费大全_三年大片观看免费大全哔哩哔哩_三年中文在线观看免费高清第4版_三年中文免费视频大全_三年大片大全免费观看大全_三年大片在线观看哔哩哔哩_三年在线观看中文免费观看_三年成都中文在线观看免费版

第十一(yī)屆藍(lán)橋杯第三場(chǎng)軟件(jiàn)類省賽 C++ απB組 題解 - 新聞資訊 - 雲南(nán)小(xiǎo)程序開(kāi)發₹‌↔♠|雲南(nán)軟件(jiàn)開(kāi)發|雲南(nán)網站(zhàn)建設-雲南ε÷≈維串信息科技有限公司

159-8711-8523

雲南(nán)網建設/小(xiǎo)程序開(kāi)發/軟件(jiàn)開(k ↔āi)發

知(zhī)識

不(bù)管是(shì)網站(zhàn),軟件(jiàn×∑> )還(hái)是(shì)小(xiǎo)程序,都(dōu)要≠÷(yào)直接或間(jiān)接能(néng)為(wè‍★∑↔i)您産生(shēng)價值,我們在追求其視(shì‍π↓)覺表現(xiàn)的(de)同時(shí),更側重于功能(≈•néng)的(de)便捷,營銷的(de)便利,運營的(de)高(gāo)效, ∏©讓網站(zhàn)成為(wèi)營銷工(gōng)具,讓軟件(jiàn•÷)能(néng)切實提升企業(yè)內(nèi)部管理(lǐ)水(shuǐ¥&)平和(hé)效率。優秀的(de)程序為(wèi)後期升級提供便捷的(de)支持!

第十一(yī)屆藍(lán)橋杯第三場(chǎng)軟件(jiàn)類≤×α省賽 C++ B組 題解

發表時(shí)間(jiān):2020-10-19

發布人(rén):葵宇科(kē)技(jì)

浏覽次數(shù):113

試題 A: 數(shù)青蛙

“一(yī)隻青蛙一(yī)張嘴,兩隻眼睛四條腿」匣青蛙兩張嘴&#x₹≤σ&ff0c;四隻眼睛八條腿。三隻青蛙三張嘴,六隻眼睛十二條腿。……二十隻©σδ青蛙二十張嘴,四十隻眼睛八十條腿。”

請(qǐng)問(wèn)膳绫擎這(zhè)段文(wén)字࿰$♦c;如(rú)不(bù)雅完全不(bù)省略,全部寫出來(lái)&≈<#xff0c;大(dà)年(nián)夜 1 到(dào) 2₩★§<0 隻青蛙,總共有(yǒu)若幹個(gè)漢字。

商定:數(shù)字 2 零丁出現(xiàn↓πλ)讀(dú)成 “兩”,在其他(tā)數(shù)∏₽↑琅绫擎讀(dú)成 “二”,例如(rú) “十二‍♠≥”。10 讀(dú)作(zuò) “十”࿰≥∞c;11 讀(dú)作(zuò) “十一(yī)”,22 讀(dú)作(zuò) ™α“二十二”。請(qǐng)隻計(jì)算(suàn)漢✘¶λ字的(de)個(gè)數(shù),标點符号不(bù)計(jì)算(suà≠₹πn)。

謎底353

上(shàng)限20隻青蛙,腿最多(duō)80隻,所以隻須要(yào)推敲1~80的(de)漢字個(gè)數(shù)即可(kě).

個(gè)位數(shù)一(yī)位;11~19以及10的(de)倍數(shù)兩位;其餘情況三位<α★

#include<iostream>
#include&↑ ©lt;string>
#include<cstring>
#incl®₹∏©ude<algorithm>
#include<cmat↕∏h>
#include<cstdio>
using ®→π✔namespace std;
int n(int x){
←♠₹≥	if(x<=10) return 1;
	if(x%10=∞&;=0) return 2;
	if(x<20) return 2;
	retu ¥↑rn 3;
}
int main(){
	int sum = 0;
	for(i"'♠±nt i = 1 ; i <=20β✔≥‌ ; i ++){
		int a = i;
		int b ©±₩1; i + i;
		int c = i *4;
		sum +&# ∏61; 10;
		sum += nα•(a)*2;
		sum+=n(b) +σ∏ ♥ n(c);
	}
	cout<<sum<<endl;
	ret♣↑ urn 0;
}

試題 B: 互質


本年(nián)是(shì) 2020 年(nián),今天是(shì) 10""✘ 月(yuè) 18 日(rì)。
請(qǐng)問(wèn)在 1 到(dào) 2020 中,有(yǒu)若幹δ↔個(gè)數(shù)與 1018 互質。

謎底:1008

因為(wèi)是(shì)填空(kōng)題,所以不(bù)須要(yào)•§>推敲什(shén)麽算(suàn)法,直接暴力試就(jiù)可(kě)

#include<iostream>
#include&l★↔∏t;string>
#include<cstring≤✘>
#include<algorithm>
#include<✘♥✔₹cmath>
#include<cstdio>
using namespa←§ce std;

int gcd2(int a,int b){
	retur Ωn b==0?a:gcd(b,a%b);
}
int main(){
	int •¥<sum = 0;
	for(int i = 1 ; i <&#→ ★61; 2020; i ++){
		if(gcd2(1018,i) =β↓ Ω;= 1){
			sum ++;
		}
	}
	cout&l£•®‌t;< sum <<endl;
	return 0;
}

試題 C: 車(chē)牌

A 市(shì)的(de)車(chē)牌由六位構成,個(gè)中前↑∑三位可(kě)能(néng)為(wèi)數(shù)字 0 至 9࿰≥← ≈c;或者字母 A 至 F,每位有(yǒu) 16 種可(kě)能(néng)。後三位₩☆隻能(néng)是(shì)數(shù)字 0 至 9。為(≤™δ♦wèi)了(le)削減攀比,車(chē)↔ 牌中不(bù)克不(bù)及有(yǒu)持續三位是(shì)雷同的(de)字符。

例如(rú),202020 是(shì)合法的(de)車(chē)牌&#x↓ε&ff0c;AAA202 不(bù)是(shì)合法的(de)車(chē)牌࿰↑≠δc;因為(wèi)前三個(gè)字母雷同。

請(qǐng)問(wèn),A 市(sh> ₹$ì)有(yǒu)若幹個(gè)合法的(de)車(chē)牌?

謎底:3997440


總共情況為(wèi)16*16*16*10*10*10

第一(yī)位第二位第三位字符一(yī)緻,可(kěφ↕∞)以看(kàn)做(zuò)一(yī)位,有(yǒu)16種情況,第四位第五位第六≥✔↑≥位分(fēn)别有(yǒu)10種情況

第一(yī)位16種情況,第二位第三位第四位一(yī)緻,看(kàn)做π→✔σ(zuò)一(yī)位,有(yǒu)10種情況,第五位第六位€≥☆¶分(fēn)别有(yǒu)10種情況

第一(yī)位16種情況,第二位16種情況,第三第四第五位一(yī)緻看(kàn)做(z©∑→δuò)一(yī)位,有(yǒu)10種情況,第六位10種情況

第一(yī)位第二位第三位分(fēn)别16種情況,第四位第五位第六位一π$≥(yī)緻,看(kàn)做(zuò)一(yī)位,有(yǒu)10種情況

采取正難則反的(de)思惟,總數(shù)減去(qù)清除情況δ©ε數(shù),就(jiù)是(shì)謎底

#include<iostream>
#inclu→©de<string>
#include<cs≤≠±tring>
#include<algorithm>
#≈≤↕include<cmath>
#include<♣★♥​cstdio>
using namespace std;

int main(){
	©☆int sum = 16*16*16*10*10*10;
	sum -= 16©✘←*10*10*10;
	sum -= 16*10*10*10;
	sum - δ1; 16*16*10*10;
	sum -="™←Ω 16*16*16*10;
	cout<<sum<<endl;
	retu‍<rn 0;
}

試題 D: Fibonacci 集合

小(xiǎo)藍(lán)定義了(le)一(yī)個(gè) FiΩ↔±₩bonacci 集合 F,集合的(de)元素如(rú)下(xià)定義≈♦f1a;

1. 最小(xiǎo)的(de) 5 個(gè) Fibon•γ≈→acci 數(shù) 1, 2, 3, 5, 8 屬于集合 F。

2. 如(rú)不(bù)雅一(yī)個(gè)元素 x 屬于 F,®δ×;則 3x + 2、5x + 3 和(hé) 8x + 5 都↓¥(dōu)屬于集合 F。

3. 其他(tā)元素都(dōu)不(bù)屬于 F。

請(qǐng)問(wèn),這(zhè)個("®γgè)集合中的(de)第 2020 小(xiǎo)元素的(de)值是(shì)若  ¶±幹?

謎底 41269

标準深搜題,數(shù)字請(qǐng)求也(yě)不(bù)λΩ大(dà)年(nián)夜,暴力即可(kě)

大(dà)年(nián)夜最小(xiǎo)的(de)五個(gè)數(sh≠≠ù)開(kāi)端搜刮,把搜刮到(dào)的(de)數(shù)字置一≥"∑(yī),然後再找地(dì)2020個(gè)置一(yī)的(de)₽ε數(shù)字即可(kě)

#include<iostream>
#include<string&g¥₩t;
#include<cstring>
#♣∑include<algorithm>
#₩βinclude<cmath>
#include&≈<cstdio>
using namespace std₩ ☆☆;
int fx[100010];
bool is[100010];
voi →∑↕d dfs(int n){
	if(n > 10™σ₩0000) return ;
	is[n] = true;
	♥★↕dfs(n*3+2);
	dfs(n*5+3);
	dfs(n*8&÷Ω© #43;5);
}
int main(){
	dfs(​ ""1);
	dfs(2);
	dfs(3);
	dfs(5);
	dfs(8);
	int sum &≥= 0;
	for(int i = 1;↑↔ ÷i<=100010;i++){
		if(is≥↔[i]){
			sum ++;
			c$ε☆out<< sum << &↕‍↑#34; ge  = " << i<<endl;σ​
			if(sum == 2020){
				break;
¥€↑			}
		}
	}
	return 0;
}

試題 E: 上(shàng)升子(zǐ)串

小(xiǎo)藍(lán)有(yǒu)一(yī)個(gè)字母矩陣,他(tā)愛(àΩ​≈¥i)好(hǎo)和(hé)小(xiǎo)夥伴們在這(zhè)個  •(gè)矩陣上(shàng)玩(wán)一(yī)些(xiē)遊戲®≠£。今天,他(tā)計(jì)算(suàn)玩(wán)找上(<÷shàng)升子(zǐ)串的(de)遊戲。遊戲是(shì)合作(z₹δ">uò)性質的(de)。小(xiǎo)藍(lán)和(hé)小(xiǎ↕®o)夥伴們起重要(yào)在矩陣中指定一(yī)個(gè)地≥‍™(dì)位,然後大(dà)年(nián)夜這(zhè)個(gè)地(dì)≈±↔位開(kāi)端,向高(gāo)低(dī)閣下(xià"₩)相(xiàng)鄰地(dì)位移動,移動必須知(zhī)足所達到₩¶®§(dào)地(dì)位上(shàng)的(de)字母比當前地(dì)位大(dà)年(nián←≤)夜。小(xiǎo)藍(lán)和(hé)小(xiǎo)₽®夥伴們可(kě)以移動随便率性多(duō)次,也♦•λ(yě)可(kě)以随時(shí)停下(xià)來(lá≥λi),如(rú)許就(jiù)找到(dào)α★♦✘了(le)一(yī)個(gè)上(shàng)升子(zǐ)串。隻要(©πyào)子(zǐ)串在矩陣中的(de)地(dì)位不(bù)合,就(jiù)認為(w$↓èi)是(shì)不(bù)合的(de)子(zǐ)串。

小(xiǎo)藍(lán)想知(zhī)道(dào),一(yī)共可(kě)以找到​ >(dào)若幹個(gè)上(shàng)升子(zǐ)&£串。小(xiǎo)藍(lán)的(de)矩陣很(hěn)大(dà)年♥↔(nián)夜,已經放(fàng)在了(le)♣£>試标題次下(xià)面,叫 inc.txt。為(wèi)了(le)更清跋扈的(de ₽)

描述問(wèn)題,他(tā)還(hái)找了(le)一(yī)個(gè)很( ₽hěn)小(xiǎo)的(de)矩陣用(yòng)來(lái)解釋。

例如(rú),對(duì)于矩陣:

AB
BC

可(kě)以找到(dào) 4 個(gè)長(cháng)度為(wèi) 1 的(de)上(shππ  àng)升子(zǐ)串、4 個(gè)長(cháng)度為(wèi) 2 的(de)上(sh≈ε♥♣àng)升子(zǐ)串、2 個(gè)長(cháng)度

為(wèi) 3 的(de)上(shàng)升子(zǐ)串,共 ★↕★α10 個(gè)。

如(rú)今,請(qǐng)你(nǐ)對(duì)于小(xiǎo)藍£₽(lán)的(de)大(dà)年(nián)夜矩陣,找到(dào)上(shàng)升$₩'子(zǐ)串的(de)數(shù)量。

謎底未知(zhī)

這(zhè)題暴力過不(bù)去(qù),比賽的(de)時(♠₽₩•shí)刻跑了(le)兩個(gè)多(duō)小(xiǎo)時(shí),還(hái)在跑..¶®≤∞....

#include<iostream>
#includ'↔e<string>
#include<cs∞≈tring>
#include<algorithm&gππ≥t;
#include<cmath>
#include&lα♠×εt;cstdio>
#include<queue>
using nλ‍amespace std;
char a[102][102];
int‌γ sum;
struct mu{
	int x;
	int y;
	char maxCha∞γ®∑r;
	mu(int xx,int yy,char z){
ε×		x = xx;
		y = yy;
		maxChar ✔​1; z;
	}
};
bool check(int x ™←✔){
	if(x<0 || x >= 100) return fal  se;
	return true;
}
void bfs(int x,int y){✔<≠♣
	queue<mu> q;
	q.push(mu(x,y,a[x][y✔÷γ]));
	while(!q.empty()){
		mu mm = βα ¥q.front();
		sum ++;
		​‌cout<<sum<<endl;
		₽'✘>q.pop();
		if(check(mm.x - 1) &a±♣γmp;& mm.maxChar < a[mm.x - 1][mm.y])"£{
			mu m2 = mu(mm.x - 1,mm.y,a[mm.x -↔π 1][mm.y]);
			q.push(m2);
		}
		if(check(mm¥₽.x + 1) && mm.maxChar <§≈± a[mm.x + 1][mm.y]){
			mu m3 ≥>♥= mu(mm.x + 1,mm.y,a[mm.x + 1][mm.y]Ω×♣);
			q.push(m3);
		}
		if(check(mm.y &#₽♦×≤43; 1) && mm.maxCh±↔€∞ar < a[mm.x][mm.y + 1]) ≈•{
			mu m4 = mu(mm.x,mm.y + 1,a[mm.x][★≤γmm.y + 1]);
			q.push(m4);
		}
		if•★₽α(check(mm.y - 1) && mm.maxChar < ←≤ a[mm.x][mm.y - 1]){
			mu m5 &★¥#61; mu(mm.x,mm.y - 1,a[mm.x✘≤γβ][mm.y - 1]);
			q.push(m5);
		}
	}
}
int mainσ€(){
	sum = 0;
	for(int i = 0 ; i < 100÷γ∏£;i++){
		cin>>a[i];
	}
	fφ¥∑or(int i = 0 ; i < 100;i++){
	®$'	for(int j = 0 ; j <π‌; 100 ; j ++){
			bfs(i,j);
		}
	}
	cout&€§"lt;<sum<<endl;
	return 0;
}

試題 F: 日(rì)期辨認

小(xiǎo)藍(lán)要(yào)處理(lǐ)異常多(duō)的(<βγ£de)數(shù)據,個(gè)中有(yǒu)一(yī)些(xi✘‍↔ē)數(shù)據是(shì)日(rì)期。在小(xαεiǎo)藍(lán)處理(lǐ)的(de)日(rì)期中有(yλ$¥ǒu)兩種常用(yòng)的(de)情勢:英文(wén)情勢和(hé)數(↔αshù)字情勢。英文(wén)情勢采取每個(gè)月(yuè)的(de)英文(wén)的≥€(de)前三個(gè)字母作(zuò)為(wèi)月(yuè)份标識&#x€↔→ff0c;後面跟兩位數(shù)字表示日(rì)期,月(yuè)份标識第一↓σ(yī)個(gè)字母大(dà)年(nián)夜寫,後兩個(gè)字×♣↓₽母小(xiǎo)寫,日(rì)孚小(xiǎo)于 10 時(shí)要(y>↔∏ào)補前導 0。1 月(yuè)到(dào) 12 月(yuε¥è)英文(wén)的(de)前三個(gè)字母分(fēn)别是(shì) Jan、Febλ¶™、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、×σ ♥Nov、Dec。數(shù)字情勢直接用(yòng)兩個(gè)整數(&₽£≥shù)表達,中心用(yòng)一(yī)★♥Ω個(gè)空(kōng)格分(fēn)隔,兩個(gè)整λ✔數(shù)都(dōu)不(bù)寫前導 0。個(gè)中月(yuè→♠™ )份用(yòng) 1 至 12 分(fēn)别表示 1 月(yuè)到(dào) 1★♦♦&2 月(yuè)。

輸入一(yī)個(gè)日(rì)期的(de)英文(wén)情勢࿰₹→β↔c;請(qǐng)輸出它的(de)數(shù)字情勢¥→$"。

【樣例輸入】
Feb08
【樣例輸出】
2 8
【樣例輸入】
Oct18
【樣例輸出】
10₹★ ↔ 18

話(huà)不(bù)多(duō)說(shuō),暴力

#include<iostream>
#include<string>
#σ✘include<cstring>
#incl↕♥©₽ude<algorithm>
#include<c←★ math>
#include<cstdio>
using na↕×mespace std;
void run(string s){
	if(s[0] &#&®61;= 'J' && s<¥Ω∏[1] == 'a'€↑​≥ && s[2] == 'nγ←✘9;){
		printf("1 ");
	}
	e​ ♠≤lse if(s[0] == 'F' &a↓λ↔∞mp;& s[1] == 'e ♣'' && s[2] == '©±b'){
		printf("2 ");
	}
	else if('↓>s[0] == 'M' && s[1] £β1;= 'a' &&a'∞±mp; s[2] == 'r'★££≥;){
		printf("3 ");
	}
	elsλ€e if(s[0] == 'A'>"; && s[1] == 'p'>γ≈ && s[2] == 'r÷•∞9;){
		printf("4 ");
	}
	else if(s[0] &¶∑♠#61;= 'M' && s[1] =÷↓= 'a' &&  •s[2] == 'y'){∞&↑
		printf("5 ");
	}
	else if(s[0±☆Ω‍] == 'J' && s[1] &δ1;= 'u' && s[2] ☆β1;= 'n'){
		printf("6 &÷β₹#34;);
	}
	else if(s[0] == 'J'>§ && s[1] == 'u' &✔&₩;& s[2] == 'l&#©♣×✔39;){
		printf("7 ");
	}
	else if(s[0]™♦ε == 'A' && s[1] =&#↑γ±✔61; 'u' && s[2] =&#$→61; 'g'){
		printf("8 ");
	}
☆¶•£	else if(s[0] == 'S' &a↔×♥mp;& s[1] == 'e&"™↔#39; && s[2] == 'p"✔™9;){
		printf("9 ");
	}♣≈>
	else if(s[0] == 'O' &amβ✘p;& s[1] == 'c' && αε₽s[2] == 't'){
λ‍		printf("10 ");
	}
	else if(φ÷s[0] == 'N' &&→₽∑← s[1] == 'o' && s[2]☆• == 'v'){
		printf(&← ♣#34;11 ");
	}
	else if(s[0] ==γ ; 'D' && s[1] == 'e∞€∑→' && s[2] == 'c&#≈φ£∞39;){
		printf("12 ");
	}
	if(sγ♠[3] != '0'){
		co→"α♣ut<<s[3];
	}
	cout<<s[4]<&÷ ‍πlt;endl;
}
int main(){
	st™™ring str;
	while(cin>>str){
		run(str)♣↕;
	}
	return 0;
}

試題 G: 乘法表

九九乘法表是(shì)進修乘法時(shí)必須要(yà☆↕​₽o)控制(zhì)的(de)。在不(bù)合進制(zhì)數(shù)下(xi✔ Ωà),須要(yào)不(bù)合的(de)乘
法表。
例如(rú),四進制(zhì)下(xià)的(de)乘法表如(rú)下(x↕≥♠ià)所示:

1*1=1
2*1=2 2*2=10
3*1=€€φ★3 3*2=12 3*3=21


請(qǐng)留意,乘法表中兩個(gè)數(shù)相(xiàng)乘的π≤(de)次序必須為(wèi)樣例中所示的(de)次序,♣↕不(bù)克不(bù)及随便
交換兩個(gè)乘數(shù)。
給定 P,請(qǐng)輸出 P 進制(zh↕ ì)下(xià)的(de)乘法表。

【輸入格局】
輸入一(yī)個(gè)整數(shù) P。
【輸出格局】
輸出 P 進制(z©♠γhì)下(xià)的(de)乘法表。P 進制(zhì)中大(dà)年(←'≤nián)夜于等于 10 的(de)數(shù)字用±∏γ(yòng)大(dà)年(nián)夜寫字母 A、B、 C、· · · 表ε♥示。
【樣例輸入】
4
【樣例輸出】
1*1=1
2*1=2 2*2σ£=10
3*1=3 3*2=12 3*3=21

【樣例輸入$™♣α】
8
【樣例輸出】
1*1=1
2*1=2 2*2= ☆§4
3*1=3 3*2=6 3*3& ✘•✘#61;11
4*1=4 4*2=10 4*3β&$1;14 4*4=20
5*1=5 5*2=12 5©©¥*3=17 5*4=24 5*5α≤1;31
6*1=6 6*2=14 6& *3=22 6*4=30 6*5=‍₹✘36 6*6=44
7*1=7 7*2=16 7*3ε→=25 7*4=34 7*5=43 7*ε  6=52 7*7=61

【評測用(yòng)例範圍與商定】

對(duì)于所有(yǒu)評測數(shù)據,2 ©¥≥‌≤ P ≤ 36。

應用(yòng)棧進行(xíng)進制(zhì)轉換¥≤​≥即可(kě),留意10以長(cháng)進制(zhì)的(de)須要(&♣yào)輸出字符A-F

#include<iostream>
#include<string&→♦γ gt;
#include<cstring>✘ ≥;
#include<algorithm>
#inclΩ↑ude<cmath>
#include<cstdio>
#₹☆include<stack>
using namespace std;φ↑ ≤
void printNum(int num,int p){
	stack&γ lt;int> s;
	while(num>0)∑σ{
		s.push(num%p);
		num/=Ω÷€p;
	}
	while(!s.empty()){
		if(s.top() > 9){
	¥♦₽≥		printf("%c",'A'+ ↓→; s.top() - 10);
		}
		else{
			cout<<s.t↕'op();
		}
		s.pop();
	}
}
void ru☆®n(int p){
	for(int i = 1 ; i &l  ​t; p ; i ++){
		for(int j>♣≈☆ = 1;j <= i;j ++¶Ω₽>){
			int sum = i * j;
			if(±®δ♥j!=1){
				printf(" "®$♦);
			}
			if(i > 9){
				printf(&#≤✔≤34;%c",'A'+i-10);
			}else{Ωδ
				printf("%d", i);
			}
			prin↕βtf("*");
			if(j > 9){
			>‌ 	printf("%c",'A'+j-10);
		¥​<♦	}else{
				printf("%d", j);
			}&↑≠
			printf("=");
			printNum(sum,p)¶&α≥;
		}
		printf("\n");
	}
}
in"✘>'t main(){
	int p;
	while(cin>>p){
		run(p);£ &
	}
	return 0;
}

試題 H: 限高(gāo)杆

【問(wèn)題描述】

某市(shì)有(yǒu) n 個(gè)路(lù)口,有(yǒu) m 段門(m®‍én)路(lù)連接這(zhè)些(xiē)路(lù)口,構成了 ÷≥(le)該市(shì)的(de)公路(lù)體(tǐ)系。個(γ×gè)一(yī)一(yī)段門(mén)路(lù)兩端必定連接兩個(φ☆↔&gè)不(bù)合的(de)路(lù)口。門(mén)路(lù)中心不(bù)會(huì)穿過路> (lù)口。因為(wèi)各類原因,在一(yī)部分(↔¥←↔fēn)門(mén)路(lù)的(de)中心設置了(le)一(yī)些(xiē)限高(gλ₹₽āo)杆,有(yǒu)限高(gāo)杆的(de)路(lù)段貨車γ✘×'(chē)無法經由過程。在該市(shì)有(yǒu)兩個(gè)重÷σ✔‌要(yào)的(de)市(shì)場(chǎng) A 和(hé) B࿰λ≤$c;分(fēn)别在路(lù)口 1 和(hé) n 鄰近(jìn)↔¶✘ε,貨車(chē)大(dà)年(nián)夜市(shì)場(chǎng) A✘‍↑出發,起首走到(dào)路(lù)口 1 ,然後經由公路(lù← ¥>)體(tǐ)系走到(dào)路(lù)口 n,才能(néng)達到(dào)®< ☆市(shì)場(chǎng) B。

兩個(gè)市(shì)場(chǎng)異常繁華&#x₽÷≈ff0c;天天有(yǒu)很(hěn)多(duō)貨車π§×‌(chē)往返于兩個(gè)市(shì)場(chǎng​↓®♦)之間(jiān)。市(shì)長(cháng)發明(míng)&#xπ↔ ff0c;因為(wèi)限高(gāo)杆很(hěn)多(duō),導緻↓♠貨車(chē)可(kě)能(néng)須要(yào)繞行(xíng)才能(nénπ₽‍®g)往返于市(shì)場(chǎng)之間(jiān),這(zhè)使得(©‌de)貨車(chē)袈溱公路(lù)體(tǐ)系中的(de)行(xí♦φng)駛路(lù)程變長(cháng),增長(cháng)了(l↓€$§e)對(duì)公路(lù)體(tǐ)系的(de)損耗,增長(chá¶✘®→ng)了(le)能(néng)源的(de)消費(fèi),同時(shí♥✔)還(hái)增長(cháng)了(le)情況污染。市(shì)長(cháng)決定要(yàoσ∞)将兩段門(mén)路(lù)中的(de)限高(gāo)杆拆除ÿ&γ¶•0c;使得(de)市(shì)場(chǎng) A 和(hé)市(•¥δαshì)場(chǎng) B 之間(jiān)的(de)路(lù)程變短 Ω≥¥(duǎn)。請(qǐng)問(wèn)最多(duō)能(néng)削減多(duō)長(chá$σ↑ng)的(de)距離(lí)?

【輸入格局】


輸入的(de)第一(yī)行(xíng)包含兩個(gè)整數(shù) n, m&↓> #xff0c;分(fēn)别表示路(lù)口的(de)數(shù)量和÷±(hé)門(mén)路(lù)的(de)段數(shù)。
接下(xià)來(lái) m 行(xíng),每行(xíng)四☆•§φ個(gè)整數(shù) a, b, c, d,表示路(lù)口 a 和(hé)路σ™₽(lù)口 b 之間(jiān)有(yǒu)一(yī)段長(✔™¥∞cháng)度為(wèi) c 的(de)門(mén)路(lù) ↑。如(rú)不(bù)雅 d 為(wèi) 0,表×≈示這(zhè)段門(mén)路(lù)膳绫腔有(yǒu)限高(gāo)杆;↑♣♠;如(rú)不(bù)雅 d 為(wèi) 1,表示這(zhè)段♦€門(mén)路(lù)上(shàng)有(yǒu)限高(gāo)杆。兩個(gè)路←•(lù)口之間(jiān)可(kě)能(néng)有(yǒu)多(duō)段門(mén)£ σ路(lù)。
輸入數(shù)據包管在不(bù)拆除限高(gāo)杆的(de)情況下(xià),≈ε☆;貨車(chē)能(néng)經由過程公路(lù)體(tǐ)系大(dà)年(nián)夜路(Ω™ δlù)口 1 正常行(xíng)駛到(dào)路(lù)口 n。

【輸出格局】
輸出一(yī)行(xíng),包含一(yī)個(gè)整數(₩•‌↓shù),表示拆除兩段門(mén)路(lù)的(de)限高(gāo)杆後&#x• ↑ff0c;市(shì)場(chǎng) A 和(hé)市(shγ£ì)場(chǎng)B 之間(jiān)的(de)路(lù)程最大(dà)年✔₽÷€(nián)夜削減多(duō)長(cháng)距離(lí)。

【樣例輸入】
5 7
1 2 1 0
2 3 2 1✘β
1 3 9 0
5 3 8 0
4 3 5 1
4 3δ® 9 0
4 5 4 0
【樣例輸出】
6

【樣例解釋】


隻有(yǒu)兩段門(mén)路(lù)有(yǒu)限高(gāo)™≈£杆,全部拆除後,1 到(dào) n 的(de∑♣)路(lù)程由本來(lái)的(de) 17 變為(wèi)了​✔≤φ(le)
11,削減了(le) 6。


【評測用(yòng)例範圍與商定】


對(duì)于 30% 的(de)評測樣例,2 ≤ n ≤ ¥Ω10,1 ≤ m ≤ 20, 1 ≤ c ≤ 100。↓¶‍∏
對(duì)于 50% 的(de)評測樣例,2 ≤ n ≤ 10ε'₽"0,1 ≤ m ≤ 1000, 1 ≤ c ≤ 1000。
對(duì)于 70% 的(de)評測樣例,2 ≤ n ≤ 1000&#✔§ xff0c;1 ≤ m ≤ 10000, 1 ≤ c ≤ 10000。
對(duì)于所有(yǒu)評測樣例,2 ≤ n ≤ 10000,"✔δ;2 ≤ m ≤ 100000, 1 ≤ c ≤ 10000✘♥←f0c;至少(shǎo)
有(yǒu)兩段門(mén)路(lù)有(yǒu)限高(gāo)杆。

先計(jì)算(suàn)不(bù)拆限高(gāo)架的(de)情況下(x±♥ià),即d等于1的(de)輸入數(shù)據,我們先保存起來(lái),個(gè)中ganx保存 ≠起點,gany保存終點,ganLi保存距離(lí)

因為(wèi)藍(lán)橋杯是(shì)閉卷測驗,dijk↑Ωπstra算(suàn)法一(yī)會(huì)兒(ér)想不(bù)起來(lá≈→i)了(le),所以應用(yòng)了(le)floyd算(s≈≈uàn)法,暴力三層for輪回,找到(dào)每個(gè)點之間(j>★iān)的(de)最短(duǎn)路(lù)徑保存在li1數(shù)組中,把1到(dào↕∑•£)n的(de)最短(duǎn)路(lù)徑保存在 qianAns 中

然後再兩層for輪回遍曆限高(gāo)的(de)門(mén)路(lù),應用(yòng)li2臨時(shí)數(shù)組複制(zhì)li1的(de)最短(duε₩<ǎn)路(lù)數(shù)據,然後測驗測驗把兩個(gè)拆掉落限高(gāo)的(de)路(lù¥σ)加進去(qù),再求一(yī)遍最短(duǎn)路(lù)

多(duō)次遍曆完成,計(jì)算(suàn)出最短(duǎn)值

相(xiàng)減就(jiù)是(shì)謎底,算(suàn)∑ππ≠法異常差,但(dàn)基本樣例可(kě)以過

#include<iostream>
#incl♣β©ude<string>
#include<cstring>☆₽
#include<algorithm>
#incl×♦™ ude<cmath>
#include<cstdio>
#includ>€©∏e<queue>
using namespace s¶↔td;
int li1[10002][10002]; // qian
int li2[10002]π& ©[10002]; // hou
int ganx[10002];
int gany[10002 •];
int ganLi[10002];
int m®±® ain(){
	
	int n,m;
	
	while(γ∞₹cin>>n>>m){
		memset(l<&→i1,1,sizeof(li1));
		int ganGe = 0;
		fo₹₹☆r(int i = 0 ; i <="©✘¥ n ; i ++){
			li1[i][i] = 0;
		}
		•★for(int i = 0 ; i < m ; i &♠•★φ#43;+){
			int a,b,c,d;
			scanf(Ω≠4;%d%d%d%d",&a,&b,&c,&d→‌↑);
			if(d == 0){
				if(l&→€₽i1[a][b] > c){
					li1[a][b] = c;
	​✘ "			}
				if(li1[b][a] > c){
			✘•		li1[b][a] = c;
				}
			}els↑<∑e{
				ganx[ganGe] = a;
				gany[®ε¶ ganGe] = b;
				ganLi[ganGe+&#•↑•ε43;] = c;
			}
		}
		for(int i &∑☆∑#61; 1 ; i <= n ; i ++ ){
			fo↑♣↕r(int j = 1 ; j <= n λ​&♣; j++ ){
				for(int k &#♣♥​61; 1 ; k <= n ; k &☆✘Ω¶#43;+ ){
					if(li1[i][j]☆© > li1[i][k] + li1[k][j] ‌★){
						li1[i][j] = li1[i][k] + l​εi1[k][j];
					}
				}
			}
		}
		int qianA₹→ns = li1[1][n];
		int houAns = 99999₽♥★;
		for(int g1 = 0 ; g1<∏λ↕ganGe ; g1 ++ ){
			fo₹↕↑r(int g2 = g1 + 1 ↔$×<; g2 < ganGe ; g2++){
				for↕≠(int i = 1;i<=n;i+&→"→#43;){
					for(int j = 1 ;✔×'£ j <= n ; j ++){
					​♠←¥	li2[i][j] = li1[i][j];
					ππ≤}
				}
				if(li2[ganx[g1]][gany[g1]] > ganLi >>σ[g1]){
					li2[ganx[g1]][gany[g1]] = ganLi[ ≥γg1];
				}
				if(li2[gany[g1]][ganx[✘♣≥g1]] > ganLi[g1]){
					li₹→☆2[gany[g1]][ganx[g1]] = ganLi[g1];
	∞Ω			}
				if(li2[ganx[g2]][gany[g2]]Ω↕‍ > ganLi[g2]){
					li2[ganx[g2]][↕φ¥♠gany[g2]] = ganLi[g2];
				}
				if(li2[g &♠any[g2]][ganx[g2]] > ganLi[g2]){
					li2[gσδ₹βany[g2]][ganx[g2]] = gaσ§™nLi[g2];
				}
				for(int i = 1∏₹ ; i <= n ; i ++ ){
 →×'					for(int j = 1 ; j <= n ; j+"Ωπβ+ ){
						for(int k = 1 ; k &α←lt;= n ; k ++ ){
		↔"β					if(li2[i][j] > li2[i][k] ≠α€ 3; li2[k][j] ){
								li2[i][j] = li2[i]¥±[k] + li2[k][j];
							}
						}♥≤
					}
				}
				if(li2[1][n∏∑Ω] < houAns){
					houAns = li2[1][n];
				δ✘∑&}
			}
		}
		
		// cout<<qianAns®∞✘ << endl;
		// cout&l≥↔♣t;<houAns<<endl;
		cout<<qianAns☆®✘> - houAns<<endl;
	}
	return 0;
}

試題 I: 畫(huà)中漂流

【問(wèn)題描述】

在夢境中,你(nǐ)踏上(shàng)了(le)一(∑≈∑yī)隻木(mù)筏,在江上(shàng)漂流。λπ©根據對(duì)本地(dì)的(de)懂(dǒng)得(de),你(nǐ)✘☆↕σ知(zhī)道(dào)在你(nǐ)下(xià)流 D 米處有(yǒu)一(y←÷¥♥ī)個(gè)峽谷,如(rú)不(bù)雅你(nǐ)向下(xià)流前
進大(dà)年(nián)夜于等于 D 米則必逝世無疑。如(rú) ↔↓今你(nǐ)打響了(le)急救德律風(fēng),T 秒(m☆ >÷iǎo)後救濟隊會(huì)達到(dào)并将你(nǐ)救上(s♠™∞hàng)岸。水(shuǐ)流速度是(shì)1 m/sÿ‌β0c;你(nǐ)如(rú)今有(yǒu) M 點體(tǐ)力。每消費(f​&λ èi)一(yī)點體(tǐ)力,你(nǐ)可(kě)‌•以整潔秒(miǎo)槳使船(chuán)向上(shàng)遊進步€δ 1m,不(bù)然會(huì)向下(xià)流進€∞&€步 1m (水(shuǐ)流)。M 點體(tǐ)力需在救濟隊趕來(lái)前花(huā)光∑↓(guāng)。因為(wèi)江面太寬了(le),憑借你(¶✔±nǐ)本身(shēn)的(de)力量弗成能(néng)上(s "hàng)岸。請(qǐng)問(wèn),有(yǒ₩‍u)若幹種劃槳的(de)籌劃可(kě)以讓你(nǐ)得(de)±¶↓↑救。

兩個(gè)劃槳籌劃不(bù)合是(shì)指:存在某一(yī)秒(miǎ☆ε↔o)鐘(zhōng),一(yī)個(gè)籌劃ε 劃槳,另一(yī)個(gè)籌劃不(bù)劃。

【輸入格局】

輸入一(yī)行(xíng)包含三個(gè)整數(shù) D,→∏™ T, M。


【輸出格局】
輸出一(yī)個(gè)整數(shù),表示可(kě)以讓你(nǐ)得(de)救★<的(de)總籌劃數(shù),謎底可(≈✔kě)能(néng)很(hěn)大(dà)年(nián)夜,請(qǐn↔∏g)輸出方
案數(shù)除以 1, 000, 000, 007 的(d≥✘<e)餘數(shù)。

【樣例輸入】
1 6 3
【樣例輸出】
5


【評測用(yòng)例範圍與商定】

對(duì)于 50% 的(de)評測用(yòng)例≈&®£f0c;1 ≤ T ≤ 350。
對(duì)于所有(yǒu)評測用(yòng)例&#x↓δ¥δff0c;1 ≤ T ≤ 3000, 1 ≤ D ≤ T, 1 ≤ M ≤ 1500。®δ₩

我應用(yòng)了(le)廣搜,構造體(tǐ)的(de)weizhi是(shì)相(xiàλ≤ng)對(duì)于起點的(de)地(dì)位,tili為↓π(wèi)當前還(hái)剩下(xià)的(de)體(tǐ)力,time是(shì)πβ∞₹當前殘剩的(de)時(shí)光(guāng)

留意标題請(qǐng)求,必須在救濟隊來(lái)之前把體(®₽&tǐ)力用(yòng)完,如(rú)不(bù)雅沒用(yòng)完,不(bù)計(jì)數(s≤φ♦×hù)

#include<iostream>
#inclu×♥₽de<string>
#include<✘©₽cstring>
#include<algorithm>
#incl₹£‌↓ude<cmath>
#include<cs♠©tdio>
#include<queue>
usi∞'×ng namespace std;
struct mu{
	int weizhi;
≠§ε♣	int tili;
	int time;
	mu(int x,int y,•₽₹​int z){
		weizhi = x;
		tili = y;
		t∏☆≈ime = z;
	}
};
void bfs(int d,int t,☆ <↑int m){
	int ans = 0;
	d = -d;
	‌←queue<mu> q;
	q.push(∞∑Ωmu(0,m,t));
	while(!q.empty()){
		β₩§mu mm = q.front();
		if(mm.weizhi <&÷ #61; d){ // si
			q.pop();
			♣☆continue;
		}
		if(mm.tili =φ¥¶1; 0 && mm.time == 0){
			ans ε¶++;
		}
		if(mm.time &©✘©÷lt;= 0){
			q.pop();
			contin€↑Ωue;
		}
		if(mm.tili > 0){ // up
		‍↔ ε	mu m1 = mu(mm.weizhi + 1,mm.tili -1$β , mm.time - 1);
			q.push(↕↕↓✔m1);
		}
		// down
		mu m2 = mu(mm.weizh•↕≈©i - 1,mm.tili , mm.time - 1);
>$		q.push(m2);
		q.pop();
	}
	cou✔©δt<<ans<<endl;
}
int main(){
	int d©₩≠,t,m;
	while(cin>>d>¶₩>t>>m){
		bfs(d,t,m×±™Ω);
	}
	return 0;
}

試題 J: 觀光(guāng)家(jiā)


【問(wèn)題描述】

早年(nián),在海(hǎi)上(shàng)有(yǒu) n δ§♠個(gè)島嶼,編号 1 至 n。居平易近(jìn)們α♣→深受洋流困擾,無法達到(dào)比本身(shēn)當前地(dì)點島嶼編号更小(®₩ xiǎo)的(de)島嶼。經由數(shù)年(nián)今後,島嶼上(shàng)的​←(de)人(rén)數(shù)跟著(zhe)島嶼的(de)編号γ∏遞增(可(kě)能(néng)相(xiàng)等)∏↕↑ε;。作(zuò)為(wèi)一(yī)名出色的(de)觀光(★"guāng)家(jiā)(RP 學家(jiā)≈♦),你(nǐ)想大(dà)年(nián)夜 1 号島嶼出γ♣λ發開(kāi)啓一(yī)次路(lù)程,以獲‌✔♦得(de)更多(duō)的(de) RP,因為(wèi)÷★受到(dào)海(hǎi)洋的(de)洋流影(yǐng)響,你(n★‌Ω<ǐ)隻能(néng)去(qù)到(dào)比當前島嶼編号更大(¥↔λdà)年(nián)夜的(de)島嶼。因為(wèi)你(nǐ)比較仁慈,你(nǐ)±♣×☆會(huì)在分(fēn)開(kāi)一(yī)個(gè♥≤↑✔)島嶼的(de)時(shí)刻将你(nǐ)的(de) RP 分(f≥< ēn)散給島平易近(jìn),具體(tǐ)的(de):你(nǐ)的(‍₽‌de) RP 會(huì)除以 2(用(yòng)®§★去(qù)尾法取整,或者說(shuō)向零取整࿰ε£‍9;(當你(nǐ)的(de) RP 小(Ω±xiǎo)于零時(shí),島平易近(jìn₽")也(yě)依舊(jiù)要(yào)幫你(nǐ)分(fēn)擔&≈₹♣#xff0c;畢竟你(nǐ)們已經建立起了(le)深摯的(de)友(yǒu)情)。☆$♦第 i 号島嶼有(yǒu) Ti 人(rén), 然則你(nǐ)很(hěn)抉剔,每δ₩₹次你(nǐ)大(dà)年(nián)夜 j 号島嶼達到(dào) i 号島嶼時(sσΩ$hí),你(nǐ)隻會(huì)在達到  ¶£(dào)的(de)島嶼上(shàng)做(zuò) Ti × T j 件(jiàn)功德≤©(一(yī)件(jiàn)功德可(kě)以獲得(de) 1 點 RP)。

獨一(yī)不(bù)足的(de)是(shì),因為(wèi)你(nǐ)在島上(s≥♥✘hàng)住宿,勞平易近(jìn)傷财,你(nǐ)會(huì)↓•∑♥扣除巨量 RP,第 i 号島嶼的(de)住π☆≤宿扣除 Fi 點 RP。留意:将分(fēn)開(kāi)一(yī)個 ♣$÷(gè)島嶼時(shí),先将 RP 扣除←‍一(yī)半,再扣除住宿的(de) RPÿ←™0c;最後在新達到(dào)的(de)島嶼上(shàng)做(zuò)功 '>德,增長(cháng) RP。分(fēn)開(kāi) 1 号島嶼時(shí)須要₽≠(yào)扣除在 1 号島嶼住宿的(de) RP,當達到(dào)這(zhè)•↔δ段路(lù)程的(de)最後一(yī)個(gè)島嶼上δ₩ (shàng)時(shí),要(yào)做(zuò)完功德,行(£‌xíng)程才能(néng)争止,也(yě)×₹≠就(jiù)是(shì)說(shuō)不(bù)消扣除在最後達到(d≤↔>ào)的(de)島嶼上(shàng)住宿的(de) R∑✘P。你(nǐ)因為(wèi)酷愛(ài)觀光(guāng) (RP)&&‍ ‌#xff0c;所以大(dà)年(nián)夜 1 号島嶼開(kāi)端§π£觀光(guāng),初始時(shí)你(nǐ)有(yǒu) 0 點 RP。

你(nǐ)欲望選擇一(yī)些(xiē)島嶼經由&#✘♦εxff0c;最終選擇一(yī)個(gè)島嶼停下(xià)來(lái),求最大(dன)年(nián)夜的(de) RP 值是(shì)若幹?

【輸入格局】

輸入的(de)第一(yī)行(xíng)包含一(yī)個(gè)數(shù) "✔€★n , 表示島嶼的(de)總數(shù)。

第二行(xíng)包含 n 個(gè)整數(shù) T1, T2, · · · ≠↕¥, Tn , 表示每個(gè)島嶼的(de)人(rén)口數(shù)。

第三行(xíng)包含 n 個(gè)整數(shù) F1, ★"☆F2, · · · , Fn , 表示每個(gè)島嶼旅店(diàn)損掉的(de) ↓&≠RP。

【輸出格局】

輸出一(yī)個(gè)數(shù),表示最大(dà)年(nián)‍">×夜獲得(de)的(de) RP 值。

【樣例輸入】
3
4 4 5
1 10 3
【樣例輸出】
19

【樣例解釋】

大(dà)年(nián)夜一(yī)号島嶼直接走到(dào)三号島嶼最優 ±>,初始 0 點 RP,扣除一(yī)半取整變成¶δ 0點。扣除在一(yī)号節點住宿的(de) 1 RP,在三号• ε島嶼做(zuò)功德産生(shēng) 4 × 5 =&•; 20 點 RP,最終獲得(de) 19 點 RP。

【樣例輸入】
5
969 980 1013 1016∞ βε 1021
888423 945460 865822 896150 946615
【Ω∑樣例輸出】
246172


【評測用(yòng)例範圍與商定】

對(duì)于 20% 的(de)評測用(yòng)例,1 ≤ n ≤ 15&#≠λ<xff1b;
對(duì)于 70% 的(de)評測用(yòng)例,1 ≤ n ​×≠​≤ 5000;
對(duì)于所有(yǒu)評測用(yòng)例,1 ≤ n ≤ 500000, 1₹★'♦ ≤ Ti ≤ 20000, 1 ≤ Fi ≤ 20÷✘0, 000, 000。
給定的(de) Ti 已經按照(zhào)升序排序。建議(yì)應用(yòng) 64 位有(÷↔yǒu)符号整數(shù)進交運算(suàn)。

我是(shì)完全模仿标題标思路(lù)寫得(de)代碼,留意←•n等于1的(de)時(shí)刻須要(yào)特判

#include<iostream>
#include<ε♦•¥;string>
#include<cstring>'∑
#include<algorithm>
#include&‍βlt;cmath>
#include<cstdio>
#include&l€λt;queue>
using namespace std;
long lδ±≤ong a[500010];
long long b[5000γ ♥≤10];
int n;
long long maxR✘'p;
void dfs(long long rp,int index,lo¶←☆ng long qianRen){
	// ting
	if(index +1 >↓♣₹; n) return ;
	if(rp + qianRe→&δσn * a[index + 1] > £<↑γmaxRp){
		maxRp = rp &≤®#43; qianRen * a[index + 1];
	}
₽λ	dfs((rp + qianRen * a[∑ index + 1])/2 - b[index + 1],index &↕α#43; 1,a[index + 1]);
	//buting☆✘λ>
	dfs(rp,index+1,qianRen);​β≈
}
int main(){
	while(cin>©♣Ω>n){
		
		for(int i = 1 ; i &≤☆©πlt;= n ; i ++){
			scanf •€("%lld",&a[i]);₽ 
		}
		for(int i = 1 ; i <= $≤n ; i ++){
			scanf("%lldδ♠",&b[i]);
		}
		if(n == 1) {
			c>φout<<"0"<<endl;
		}else​‌♣{
			maxRp = -b[1];
			dfs(-bδ<↔δ[1],1,a[1]);
			cout << maxRp <×₹↓< endl;
		}
	}
	return 0;
}

相(xiàng)關案例查看(kàn)更多(duō)

相(xiàng)關閱讀(dú)

三年中文在线观看免费大全_三年大片免费高清哔哩哔哩_三年在线观看免费大全哔哩_三年大全免费大片三年大片_三年在线观看免费大全_三年大片观看免费大全哔哩哔哩_三年中文在线观看免费高清第4版_三年中文免费视频大全_三年大片大全免费观看大全_三年大片在线观看哔哩哔哩_三年在线观看中文免费观看_三年成都中文在线观看免费版