欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

USACO2022DecemberContest,Bron-創(chuàng)新互聯(lián)

USACO 2022 年 12 月月賽,銅牌 T1-USACO 2022 December Contest, Bronze Problem 1. Cow College

Farmer John 計(jì)劃為奶牛們新開(kāi)辦一所大學(xué)!
在這里插入圖片描述
有 N(1 ≤ N≤ 10^5)頭奶??赡軙?huì)入學(xué)。每頭奶牛最多愿意支付 ci 的學(xué)費(fèi)(1 ≤ ci ≤ 10^6)。 Farmer John 可以設(shè)定所有奶牛入學(xué)需要支付的學(xué)費(fèi)。如果這筆學(xué)費(fèi)大于一頭奶牛愿意支付的最高金額,那么這頭奶牛就不會(huì)入學(xué)。Farmer John 想賺盡可能多的錢(qián),從而可以給他的講師提供一筆可觀的工資。請(qǐng)求出他能賺到的錢(qián)的數(shù)量,以及此時(shí)應(yīng)當(dāng)收取多少學(xué)費(fèi)。
輸入格式(從終端 / 標(biāo)準(zhǔn)輸入讀入):
輸入的第一行包含 N。第二行包含 N 個(gè)整數(shù) c1,c2,…,cN,其中 ci 是奶牛 i 愿意支付的最高學(xué)費(fèi)金額。
輸出格式(輸出至終端 / 標(biāo)準(zhǔn)輸出):
輸出 Farmer John 可以賺到的大金額以及最優(yōu)情況下他應(yīng)該收取的學(xué)費(fèi)。如果有多個(gè)解,輸出收取學(xué)費(fèi)最小的解。
注意這個(gè)問(wèn)題涉及到的整數(shù)可能需要使用 64 位整數(shù)型(例如,Java 中的 “l(fā)ong”,C/C++ 中的 “l(fā)ong long”)。
輸入樣例:
4
1 6 4 6
輸出樣例:
12 4
如果 Farmer John 收費(fèi) 4,那么 3 頭奶牛將會(huì)入學(xué),從而使他賺取 3?4=12 的金額。
測(cè)試點(diǎn)性質(zhì):
測(cè)試點(diǎn) 2-4 滿足 ci≤1,000。
測(cè)試點(diǎn) 5-8 滿足 N≤5,000。
測(cè)試點(diǎn) 9-12 沒(méi)有額外限制。
供題:Freddie Tang

創(chuàng)新新互聯(lián),憑借十余年的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千家案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)公司

emmm……看到這題的第一眼是想枚舉,但一看數(shù)據(jù)量“1 ≤ N≤ 10^5”瞬間石化,這……有些眼熟(嘿嘿,好奇的同學(xué)點(diǎn)進(jìn)去看看,就明白了),嘿嘿,前綴和嘛!
明白方法實(shí)現(xiàn)不難,公式是(money是總學(xué)費(fèi)數(shù)組,a是牛愿意付的學(xué)費(fèi),money[0]=0):

money[i]=money[i-1]+當(dāng)前牛的數(shù)量*(a[i]-a[i-1])-a[i-1];

而牛的數(shù)量可以另開(kāi)一個(gè)變量cow=n,然后每循環(huán)一次cow–。但是首先得明白一個(gè)問(wèn)題:如果a[i]=a[i-1],那么這個(gè)cow的數(shù)字是錯(cuò)誤的,但其實(shí)我們不需要去管它,因?yàn)槿绻鸻[i-1]=a[i],那么money[i]時(shí)間復(fù)雜度O(n log n):

#includeusing namespace std;

long long a[100010],n,money[100010],cow,ans=-1,ans1=-1,same;

void readp(){cin>>n;
	for(int i=1;i<=n;++i)cin>>a[i];
	sort(a+1,a+1+n);//先對(duì)輸入進(jìn)行排序
	cow=n+1;//初始化……欸,我下面代碼用n-i+1代替cow了,忽略忽略
}

void work(){for(int i=1;i<=n;++i){money[i]=money[i-1]-a[i-1]+(n-i+1)*(a[i]-a[i-1]);
	}
	for(int i=1;i<=n;++i){if(money[i]>ans){	ans=money[i];
			ans1=a[i];
		}//打擂臺(tái)求大值
	}
}

int main(){readp();
	work();
	cout<

但是有一種更為簡(jiǎn)單的方法——這里可以直接算出money[i]:是愿意付學(xué)費(fèi)牛的個(gè)數(shù)??當(dāng)前單個(gè)學(xué)費(fèi)

#includeusing namespace std;

long long a[100010],ans,n,pos;

void readp(){scanf("%d",&n);
	for(int i=1;i<=n;++i)
		cin>>a[i];
	sort(a+1,a+n+1);
}

void work(){for(int i=1;i<=n;++i)
		if(ans	ans=a[i]*(n-i+1);
			pos=a[i];
		}
	printf("%d %d\n",ans,pos);
}

int main(){readp();
	work();
	return 0;
}

int main(){readp();
	work();
	return 0;
}
T2-USACO 2022 December Contest, Bronze Problem 2. Feeding the Cows

Farmer John 有 N(1≤N≤105)頭奶牛,每頭奶牛的品種是更賽牛(Guernsey)或荷斯坦牛(Holstein)之一。她們沿水平方向排成一行,奶牛們占據(jù)的位置編號(hào)為 1…N。
由于奶牛們都餓了,F(xiàn)J 決定在 1…N 中的某些位置上種植草地。更賽牛和荷斯坦牛喜歡不同類(lèi)型的草,所以如果 Farmer John 決定在某個(gè)位置種草,他必須選擇種植更賽牛喜歡的草或荷斯坦牛喜歡的草——他不能在同一個(gè)位置同時(shí)種兩種草。種植的每一片草地都可以喂飽數(shù)量不限的相應(yīng)品種的奶牛。
每頭奶牛愿意移動(dòng)至多 K(0≤K≤N?1)個(gè)位置以前往一個(gè)草地。求出喂飽所有奶牛所需種植的最小草地?cái)?shù)量。此外,輸出一種使用最小草地?cái)?shù)量喂飽所有奶牛的種植方案。任何滿足上述條件的方案均視為正確。
輸入格式(從終端 / 標(biāo)準(zhǔn)輸入讀入):
每個(gè)測(cè)試用例包含 T 個(gè)子測(cè)試用例,為一種奶牛的排列。輸入的第一行包含 T(1≤T≤10)。以下是 T 個(gè)子測(cè)試用例。
每個(gè)子測(cè)試用例的第一行包含 N 和 K。第二行包含一個(gè)長(zhǎng)度為 N 的字符串,其中第 i 個(gè)字符表示第 i 頭奶牛的品種(G 表示更賽牛,H 表示荷斯坦牛)。
輸出格式(輸出至終端 / 標(biāo)準(zhǔn)輸出):
對(duì)于 T 個(gè)子測(cè)試用例中的每一個(gè),輸出兩行。第一行輸出喂飽所有奶牛所需的最小草地?cái)?shù)量。第二行輸出一個(gè)長(zhǎng)度為 N 的字符串,表示一種使用最小草地?cái)?shù)量喂飽所有奶牛的種植方案。第 i 個(gè)字符表示第 i 個(gè)位置,若不種草則為 ‘.’,若種植喂飽更賽牛的草則為 ‘G’,若種植喂飽荷斯坦牛的草則為 ‘H’。任何合法的方案均可通過(guò)。
輸入樣例:
6
5 0
GHHGG
5 1
GHHGG
5 2
GHHGG
5 3
GHHGG
5 4
GHHGG
2 1
GH
輸出樣例:
5
GHHGG
3
.GH.G
2
…GH.
2
…GH
2
…HG
2
HG
注意對(duì)于某些子測(cè)試用例,存在多種可通過(guò)的方案使用最小數(shù)量的草地。例如,在第四個(gè)子測(cè)試用例中,以下是另一個(gè)可以通過(guò)的答案:
.GH…
這個(gè)方案在第二個(gè)位置種植一塊喂飽更賽牛的草地以及在第三個(gè)位置種植一塊喂飽荷斯坦牛的草地。這使用了最小數(shù)量的草地并確保了所有奶牛都在她們喜歡的草地的 3 個(gè)位置以內(nèi)。
測(cè)試點(diǎn)性質(zhì):
測(cè)試點(diǎn) 2-4 滿足 N≤10。
測(cè)試點(diǎn) 5-8 滿足 N≤40。
測(cè)試點(diǎn) 9-12 滿足 N≤105。
供題:Mythreya Dharani

這題……耗了我一個(gè)小時(shí)。。。
先簡(jiǎn)要介紹一下,我的思路是:最優(yōu)解必定是當(dāng)前位置+k,而如果放置在這兒,那么在當(dāng)前位置+2k的范圍內(nèi)即無(wú)需再放置該種類(lèi)草。但需要解決一個(gè)問(wèn)題:當(dāng)當(dāng)前位置+k>n怎么辦?我是這樣解決的:while(a[n-pp] == ‘G’||a[n-pp] == ‘H’)++pp;
這樣可以統(tǒng)一調(diào)配:當(dāng)然無(wú)須擔(dān)心沒(méi)位置或位置小于當(dāng)前位置(出界時(shí)必定該種類(lèi)草已經(jīng)不需要了)

#includeusing namespace std;

long long k,t,n,fine,way;
char q[100010],ans[100010];

void readp(){cin>>n>>k;
	for(long long i=1;i<=n;++i)cin>>q[i];
}

void work(){long long G=0,H=0;
	for(long long i=1;i<=n;++i){if(q[i]=='G'&&G	long long p=i+k;
			if(p>n){		long long pp=0;
				while(ans[n-pp]=='G'||ans[n-pp]=='H'){++pp;
				}
				p=n-pp;
			}
			ans[p]='G';
			G=i+k+k;
			++way;
		}
		else if(q[i]=='H'&&H	++way;
			long long p=i+k;
			if(p>n){		long long pp=0;
				while(ans[n-pp]=='G'||ans[n-pp]=='H'){++pp;//若出界,在界內(nèi)以保持最優(yōu)的原則(哎呀,其實(shí)沒(méi)必要,只要你保證不重且位置在當(dāng)前位置后即可)從后向前分配
				}
				p=n-pp;
			}
			ans[p]='H';
			H=i+k+k;
		}
		if(ans[i]!='G'&&ans[i]!='H'){	ans[i]='.';
		}
	}
}

void out(){cout<cin>>t;
	for(long long i=1;i<=t;++i){readp();
		work();
		out();
	}
	return 0;
}

從今天起,我要養(yǎng)成好習(xí)慣----非空間必要全開(kāi)long long?。。?/s>

T3-USACO 2022 December Contest, Bronze Problem 3. Reverse Engineering

Elsie 有一個(gè)程序,接受一個(gè) N(1≤N≤100)個(gè)變量的數(shù)組 b[0],…,b[N?1] 作為輸入,其中每個(gè)變量等于 0 或 1,并且返回對(duì)輸入數(shù)組應(yīng)用一系列 if / else if / else 語(yǔ)句的結(jié)果。每個(gè)語(yǔ)句檢查至多一個(gè)輸入變量的值,并返回 0 或 1。這類(lèi)程序的一個(gè)例子是:
if (b[1] == 1) return 1;
else if (b[0] == 0) return 0;
else return 1;
例如,如果上方程序的輸入是 “10”(即 b[0]=1 及 b[1]=0),那么輸出應(yīng)當(dāng)為 1。
Elsie 告訴了 Bessie 對(duì)于 M(1≤M≤100)個(gè)不同輸入的正確輸出。Bessie 現(xiàn)在正試圖對(duì) Elsie 的程序進(jìn)行逆向工程。不幸的是,Elsie 可能說(shuō)了謊;可能不存在上述形式的程序行為與 Elsie 所說(shuō)的均一致。
對(duì)于 T(1≤T≤10)個(gè)子測(cè)試用例中的每一個(gè),判斷 Elsie 是否一定在說(shuō)謊。
輸入格式(從終端 / 標(biāo)準(zhǔn)輸入讀入):
輸入的第一行包含 T,為子測(cè)試用例的數(shù)量。
每一個(gè)子測(cè)試用例的第一行包含兩個(gè)整數(shù) N 和 M,以下 M 行,每行包含一個(gè)由 N 個(gè) 0 或 1 組成的字符串,表示一個(gè)輸入(即 b[0]…b[N?1] 的值),以及另一個(gè)字符(0 或 1)表示輸出。相鄰的子測(cè)試用例之間用空行分隔。
輸出格式(輸出至終端 / 標(biāo)準(zhǔn)輸出):
對(duì)于每一個(gè)子測(cè)試用例,輸出一行,包含 “OK” 或 “LIE”,分別表示 Elsie 可能沒(méi)有說(shuō)謊或是一定在說(shuō)謊。
輸入樣例:
4
1 3
0 0
0 0
1 1
2 4
00 0
01 1
10 1
11 1
1 2
0 1
0 0
2 4
00 0
01 1
10 1
11 0
輸出樣例:
OK
OK
LIE
LIE
以下是第一個(gè)子測(cè)試用例的一個(gè)合法的程序:
if (b[0] == 0) return 0;
else return 1;
以下是第一個(gè)子測(cè)試用例的另一個(gè)合法的程序:
if (b[0] == 1) return 1;
else return 0;
以下是第二個(gè)子測(cè)試用例的一個(gè)合法的程序:
if (b[1] == 1) return 1;
else if (b[0] == 0) return 0;
else return 1;
顯然,對(duì)于第三個(gè)子測(cè)試用例不存在對(duì)應(yīng)的合法的程序,因?yàn)?Elsie 的程序一定始終對(duì)相同的輸入產(chǎn)生相同的輸出。
可以證明對(duì)于最后一個(gè)子測(cè)試用例不存在對(duì)應(yīng)的合法的程序。
測(cè)試點(diǎn)性質(zhì):
測(cè)試點(diǎn) 2-3 滿足 N=2。
測(cè)試點(diǎn) 4-5 滿足 M=2。
測(cè)試點(diǎn) 6-12 沒(méi)有額外限制。
供題:Benjamin Qi

第3題,欲哭無(wú)淚……
分析----拿樣例舉一波例子:

00 0
01 1
10 1
11 0

看,00和01結(jié)果不一樣但是第一位一樣,說(shuō)明第一個(gè)if語(yǔ)句不可能是判斷是否為0
10與11結(jié)果不一樣但是第一位一樣,說(shuō)明第一個(gè)if語(yǔ)句也不可能判斷是否為1,所以就錯(cuò)了。
(也可以這么看:00與10結(jié)果不一樣但是第二位一樣,說(shuō)明對(duì)應(yīng)的if語(yǔ)句不可能是判斷是否為0,01與11結(jié)果不一樣但是第二位一樣,說(shuō)明對(duì)應(yīng)的if語(yǔ)句也不可能是判斷是否為1,所以出錯(cuò))
(更多見(jiàn)注釋)

#includeusing namespace std;

int main(){int t,m,n;
	string s[110];
	bool v[110];
	cin>>t;
	while(t--){cin>>n>>m;
		for(int i=1;i<=m;++i)cin>>s[i]>>v[i];
		int ans0=0,ans1=0,vh[2][2];//vh數(shù)組用于統(tǒng)計(jì)數(shù)量,如:vh[1][0]統(tǒng)計(jì)的是結(jié)果是0有的1的個(gè)數(shù)
		int vh1[110],vh2[110];//vh1,vh2用于標(biāo)記,如果審核發(fā)現(xiàn)沒(méi)問(wèn)題(且確定了思路中提到的確定了if的條件),就刪掉,接下來(lái)就不處理該數(shù)據(jù)了。vh1標(biāo)記的是第幾位被標(biāo)記,vh2只標(biāo)記具體的某一個(gè)數(shù)
		memset(vh1,0,sizeof(vh1));
		memset(vh2,0,sizeof(vh2));
		for(int i=1;i<=m;++i)
			if(v[i]==0)ans0++;
			else ans1++;//先統(tǒng)計(jì)結(jié)果中是0還是1的個(gè)數(shù)
		bool bl=1,bo=0;
		while(bl){	bl=0;
			for(int i=0;i		if(!vh1[i]){memset(vh,0,sizeof(vh));
					for(int ii=1;ii<=m;++ii)
						if(!vh2[ii])vh[s[ii][i]-'0'][v[ii]]++;
					if(vh[0][0]==0&&vh[0][1]!=0){//
						bl=1;
						ans1-=vh[0][1];
						for(int j=1;j<=m;++j)
							if(s[j][i]=='0')vh2[j]=1;
					}
					if(vh[0][1]==0&&vh[0][0]!=0){bl=1;
						ans0-=vh[0][0];
						for(int j=1;j<=m;++j)
							if(s[j][i]=='0')vh2[j]=1;
					}
					if(vh[1][0]==0&&vh[1][1]!=0){bl=1;
						ans1-=vh[1][1];
						for(int j=1;j<=m;++j)
							if(s[j][i]=='1')vh2[j]=1;
					}
					if(vh[1][1]==0&&vh[1][0]!=0){bl=1;
						ans0-=vh[1][0];
						for(int j=1;j<=m;++j)
							if(s[j][i]=='1')vh2[j]=1;
					}
					if(bl){vh1[i]=1;
						break;
					}
				}
			} 
		}
		if(ans0==0||ans1==0)cout<<"OK"<

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:USACO2022DecemberContest,Bron-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://chinadenli.net/article18/idcgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、建站公司網(wǎng)頁(yè)設(shè)計(jì)公司、做網(wǎng)站定制開(kāi)發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)