亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

寒假訓練賽(五) 自我總結

2019-11-14 12:57:56
字體:
來源:轉載
供稿:網友

時間:2017年2月3號

總結:題目偏簡單。不過可能是最近囫圇吞棗般地學了太多算法,自己做題時的腦洞越來越少......有時明明很簡單的題卻總想往學過的算法上面靠....浪費了很多時間,雖然能AC,但效率低了很多。

改進:補完以前剩下的hdoj11頁的水題,另外做題時學會從多個角度去思考以找到解題的思路。

題目:

1001:

PRoblem A Uppercase - SCUT 2013級新生選拔賽第二場

Time Limit : 3000/1000ms (java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 43   Accepted Submission(s) : 41

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

You are given a string S that only contains uppercase letters and lowercase letters, your task is count how many uppercase letters are there.

Input

Input contains multiple cases.Each case contains a single string S , and the length of S won’t exceed 1000.

Output

For each case, output the number of uppercase letters of S in a single line.

Sample Input

abcdABCDabCD

Sample Output

042

簽到題
#include <bits/stdc++.h>using namespace std;typedef long long ll;char str[1010];int main(){	while(scanf("%s",str) != EOF){		int len = strlen(str);		int ans = 0;		for(int i=0 ;i<len ;i++){			if(str[i]>='A' && str[i]<='Z')				ans++;		}			printf("%d/n",ans);	}	return 0;}1002:

Problem B XRT in FSK

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 100   Accepted Submission(s) : 36

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

由于學校的實習安排,XRT被安排去了煙臺FSK當質檢工(XRT:為什么是我...)。每次XRT都要檢查n個小球,已知這n個小球里面有一個是比較輕的,其余的n-1個小球重量都相同。XRT有一個天平,每次他可以把若干個球放在左邊,若干個球放在右邊,然后得到結果:左邊重,右邊重和平衡。由于XRT的數學很弱(XRT:泥垢了....),所以你可以告訴他,最少測量多少次能保證把比較輕的小球找出來嗎?

Input

輸入包含多組數據對于每組數據,輸入一個正整數n(1≤n≤108 )

Output

每組樣例輸出一行,表示測量的最少次數.

Sample Input

110

Sample Output

03

好像是初中的物理題....最優策略是三分,因為3的余數只有0,1,2;所以當余數為0,分為:m   m   m             用m與m比較當余數為1,分為:       m   m   m+1         用m與m比較當余數為2,分為:       m   m+1 m+1       用m+1與m+1比較因為次品是較輕的(已知條件),所以每次比較都可以縮小問題規模到原規模的1/3。(天平的結果相等取第三堆,不相等就直接取輕的那一堆)
#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){    int n;    while(scanf("%d",&n) != EOF){        double t = log(n)/log(3);        int ans = (int)t;        if(t - ans != 0)            ans++;        cout << ans <<endl;    }    return 0;}

1003:

Problem D The sad match I

Time Limit : 3000/3000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 83   Accepted Submission(s) : 22

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

集訓隊又要選拔了,今年為了壯大集訓隊規模,學校打算出很多很多場選拔賽,第i場的持續時間是[ai,bi)。每一場選拔賽都必須至少有一個老隊員在現場組織。很遺憾的是,選拔賽可能重疊,比如說可能有一場比賽在[4,9)舉行,另一場在[6,10)舉行,那么同學們只能選擇參加其中一場了。當然,我絕不會關心,你能不能參加的,我關心的是我到底要不要被迫去現場組織比賽。只要兩場比賽時間不沖突,他們就可以由同一個老隊員組織?,F在給出所有的比賽時間,問最少需要多少個老隊員作組織工作。例如在[0, 5), [2, 10), [8, 9)各有一場比賽,那么可以讓一個老隊員去第一、三場,另一個老隊員去第二場,這樣只需要兩個老隊員就夠了

Input

輸入的第一行包含一個整數T,表示T個測試樣例。每一個測試樣例的第一行包含一個正整數n(n≤105 ),表示有n場選拔賽。接下來的n行有每行有2個數,ai和bi, (0≤ai < bi ≤ 105)。

Output

對于每組數據,輸出至少需要的老隊員的人數

Sample Input

324 96 1014 941 32 34 96 10

Sample Output

212

套路題,區間打標記。(雖然數組名是dp,這道題與dp并沒有關系....)
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e5 + 100;int dp[maxn];int main(){	int T;	scanf("%d",&T);	while(T--){		int n;		scanf("%d",&n);		memset(dp,0,sizeof(dp));		while(n--){			int a,b;			scanf("%d%d",&a,&b);			dp[a]++;			dp[b]--;		}			int Max = 0,sum=0;		for(int i=0 ;i<maxn ;i++){			sum += dp[i];			Max = max(sum,Max);		}		printf("%d/n",Max);	}	return 0;}1004:

Problem F Count the continent

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 49   Accepted Submission(s) : 35

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

給出一個二維矩陣,表示一張地圖,0表示海洋,1表示陸地,若一塊陸地的坐標為(r,c),如果另一塊陸地為 (r-1,c) 或 (r+1,c) 或 (r,c-1) 或 (r,c+1),則我們認為這兩塊陸地相鄰,所有相鄰的陸地我們稱之為一個大陸,求大陸的數量。

Input

輸入包含多組數據對于每組數據,輸入第一行為一個正整數N (N≤10 ),然后給出一個N * N 的矩陣接下來的N行每行N個元素以空格分開,表示該格是陸地還是海洋。

Output

對于每組數據,輸出大陸的數量。

Sample Input

41 1 0 01 1 0 00 0 1 00 0 0 030 1 00 1 00 1 030 0 00 1 00 0 0

Sample Output

211

dfs入門題:
#include <bits/stdc++.h>using namespace std;typedef long long ll;int maze[15][15];int n;int dx[4] = {1,-1,0,0},dy[4] = {0,0,1,-1};bool check(int x,int y){	if(x<=0 || x>n || y<=0 || y>n || !maze[x][y]){		return false;	}	return true;}void dfs(int x,int y){	maze[x][y] = 0;	for(int i=0 ;i<4;i++){		int xx = x + dx[i];		int yy = y + dy[i];		if(check(xx,yy))			dfs(xx,yy);	}}int main(){	while(scanf("%d",&n) != EOF){		for(int i=1 ;i<=n ;i++){			for(int j=1 ;j<=n ;j++){				scanf("%d",&maze[i][j]);			}		}		int ans = 0;		for(int i=1 ;i<=n ;i++){			for(int j=1 ;j<=n ;j++){				if(maze[i][j]){					ans++;					dfs(i,j);				}			}		}		printf("%d/n",ans);	}	return 0;}1005:

Problem G Math Problem

Time Limit : 3000/3000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 60   Accepted Submission(s) : 21

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

已知a, n,求,求(Σni=1 an-i(a-1)i-1 ) mod 1000000007

Input

輸入第一行是一個正整數T(T≤1000),表示有T組數據;每組數據包含兩個正整數a, n(a,n≤109 )。

Output

對于每組數據,輸出上式的結果。

Sample Input

31 12 25 10

Sample Output

138717049

第一次做這種數學公式變形題,我一開始的思路就是怎么合并式子,但化簡時出現了(1/a),然后感覺會帶來誤差就直接放棄了先做的后面的題?;仡^做時發現原來時等比數列求和:最后可以化簡為: a^n - (a-1)^n然后快速冪即可,但注意負模的處理。
#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll mod = 1000000007;ll fast_mod(ll x,ll n){	ll ans = 1;	while(n>0){		if(n&1)			ans = ans * x % mod;			x = x * x % mod;		n /= 2;	}	return ans%mod;}int main(){	int T;	scanf("%d",&T);	while(T--){		ll a,n;		scanf("%lld%lld",&a,&n);		if(n==1 || a==1){			printf("1/n");			continue;		}		if(a==0){			printf("0/n");			continue;		}				ll ans = (fast_mod(a,n) - fast_mod(a-1,n) + mod)%mod;		printf("%lld/n",ans);	}	return 0;}1006

Problem I Zeros

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 54   Accepted Submission(s) : 36

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

給出n,計算n!末尾0的個數

Input

輸入包含多組數據每組數據包含一個正整數n (n≤109 )

Output

對于每組數據,輸出n!末尾0的個數

Sample Input

351001024

Sample Output

0124253

之前做過的題,印象很深刻.....
#include <bits/stdc++.h>using namespace std;typedef long long ll;int ans;void solve(int x){	while(x>=5){		x /= 5;		ans += x;	}}int main(){	int n;	while(scanf("%d",&n) != EOF){		ans = 0;		solve(n);			cout << ans << endl;	}	return 0;}1007:

Problem J It didn't hate

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 42   Accepted Submission(s) : 29

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

東東特別討厭“11”,他將所有含有“11”子串的01串(只有0和1組成串)稱為光棍。長度為2的光棍有1種:11;長度為3的光棍有3種:011,110,111;長度為4的光棍有8種:0011,0110,1100,1011,1101,1110,0111,1111;給出n,東東想知道長度為n的光棍有多少?

Input

輸入包含大量數據,大約1000組左右每組數據包含一個1個正整數n(n≤106 )。

Output

對于每組數據,輸出長度為n的光棍串的數量模1000000007的結果。

Sample Input

1469504

Sample Output

08632157493

DP:設dp[n][0]:長度為n的合法數dp[n][1]:長度為n,首位為1的非法數dp[n][2]:長度為n,首位為0的非法數 所以狀態轉移方程:dp[n][0] = dp[n-1][0]*2 + dp[n-1][1];dp[n][1] =  dp[n-1][2];dp[n][2] = dp[n-1][1] + dp[n-1][2];
#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll mod = 1000000007;const int maxn = 1e6 + 10;ll dp[maxn][3]; void init(void){	dp[0][0] = dp[0][1] = dp[0][2] = 0;	dp[1][0] = 0;	dp[1][1] = dp[1][2] = 1;	for(int i=2 ;i<maxn ;i++){		dp[i][0] = (dp[i-1][0] * 2 + dp[i-1][1])%mod;		dp[i][1] = dp[i-1][2] % mod;		dp[i][2] = (dp[i-1][1] + dp[i-1][2]) % mod;	}	}int main(){	init();	int n;	while(scanf("%d",&n) != EOF){		printf("%lld/n",dp[n][0]);	}	return 0;}1008:

Problem C Flip

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 58   Accepted Submission(s) : 24

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

康哥哥和康妹妹經常在一起玩游戲。其中一種就是硬幣翻轉。游戲的規則如下:1. N*M(N行,M列)的棋盤上,棋盤上每個位置都有個硬幣,不是朝上就是朝下;2. 兩人輪流進行操作,不能進行操作的人輸,當棋盤上所有硬幣都朝下時游戲結束;3. 每次操作都在棋盤上選擇一個矩形,這個矩形的左上角和右下角位置分別是(x1,y1)和(N,M),然后翻轉這個矩形區域內的所有硬幣,即把朝上的變成朝下的,把朝下的變成朝上的,(x1,y1)是操作者選定的,唯一限制是每次選定的左上角位置(x1,y1)必須從向上翻轉為向下;康哥哥曾經給康妹妹一個問題,假如給你最初棋盤的分布情況,你能確定最終誰能贏嗎?假如兩人都采用最優策略去玩游戲,游戲每次都是康哥哥先移動。你能幫康妹妹解決這個問題嗎?

Input

第一行輸入一個正整數T,接下來有T組數據(T≤50)。每組數據的首行輸入N和M(N,M如上所述),接下來輸入N行,每行有M個正整數,每個正整數不是0就是1,0表示硬幣向下,1表示硬幣向上。(1≤N,M≤20)

Output

對于每組數據,如果康哥哥能贏,輸出YES,否則輸出NO??蹈绺缬亚樘崾荆哼@題真的不難,注意觀察條件。

Sample Input

22 21 11 13 30 0 00 0 00 0 0

Sample Output

YESNO博弈。首先明確一點:翻硬幣時無論玩家怎么選擇矩形左上角的點,點(n,m)都一定會被翻過來。然后簡單模擬一下:假設點(n,m)的硬幣初始態為0首先哥哥操作: 0 -> 1然后妹妹操作: 1 -> 0哥哥:   0 -> 1妹妹:   1 -> 0哥哥:   0 -> 1妹妹:   1 -> 0.....我們發現,每次妹妹操作完,輪到哥哥翻硬幣時,點(n,m)硬幣的狀態都與初始態相同。而我們又知道結束狀態點(n,m)硬幣狀態一定是0。所以對于上面的例子,哥哥一定是輸,因為每次哥哥操作都是在把點(n,m)的硬幣從0 -> 1,所以永遠到達不了必敗點,即棋面全為0的狀態哥哥是永遠到達不了的。所以:我們只需要判斷點(n,m)的初始態是0還是1,如果是1,則哥哥必贏,否則,妹妹必贏。代碼:
#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){	int T;	scanf("%d",&T);	while(T--){		int x,n,m;		int ans = 0;		scanf("%d%d",&n,&m);		for(int i=1 ;i<=n ;i++){			for(int j=1 ;j<=m ;j++){				scanf("%d",&x);			}		}		if(x)	puts("YES");		else	puts("NO");	}	return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产拍免费91在线| 中文字幕在线成人| 欧美精品久久久久| 日本亚洲精品在线观看| 国产日韩欧美中文在线播放| 日韩欧美亚洲成人| 在线日韩日本国产亚洲| 日韩欧美国产免费播放| 欧美午夜片在线免费观看| 51久久精品夜色国产麻豆| 亚洲一区中文字幕在线观看| 欧美视频在线视频| 久久青草精品视频免费观看| 国产精品色午夜在线观看| 日韩在线观看电影| 亚洲天堂免费在线| 欧美性生交大片免费| 在线电影欧美日韩一区二区私密| 亚洲一区二区三区久久| 国产欧美日韩精品在线观看| 日韩久久精品成人| 久久不射电影网| 色综合亚洲精品激情狠狠| 久久精品国产69国产精品亚洲| 热99精品只有里视频精品| 欧美丝袜一区二区| 国产日韩欧美在线看| 有码中文亚洲精品| 57pao国产成人免费| 国产成人精品视| 亚洲国产成人精品女人久久久| 成人黄色影片在线| 久久亚洲精品小早川怜子66| 欧美一级淫片aaaaaaa视频| 欧美精品中文字幕一区| 中文字幕亚洲欧美日韩2019| 97视频免费在线观看| 性欧美视频videos6一9| 中文字幕久热精品在线视频| 国产精品观看在线亚洲人成网| 亚洲精品一区av在线播放| 亚洲福利视频网| 91精品国产高清| 日韩精品视频在线观看免费| 欧美激情在线有限公司| 国产999精品视频| 久久久噜噜噜久久中文字免| 亚洲护士老师的毛茸茸最新章节| 国内偷自视频区视频综合| 国产精品久久久久久久久久ktv| 性欧美长视频免费观看不卡| xvideos成人免费中文版| 成人网中文字幕| 国产成人激情小视频| 操人视频在线观看欧美| 狠狠做深爱婷婷久久综合一区| 热99精品里视频精品| 日韩在线欧美在线国产在线| 色妞久久福利网| 一区二区三区四区视频| 欧美激情一二三| 视频一区视频二区国产精品| 国产亚洲免费的视频看| 亚洲精品成人av| 日韩资源在线观看| 97人人做人人爱| 美日韩精品视频免费看| www.久久色.com| 亚洲字幕在线观看| 午夜精品99久久免费| 97久久国产精品| 宅男66日本亚洲欧美视频| 日本精品久久中文字幕佐佐木| 亚洲精品视频免费| 日韩精品日韩在线观看| 国产精品主播视频| 欧美精品激情blacked18| 亚洲欧美综合另类中字| 精品国内亚洲在观看18黄| 欧美日韩国产在线看| 欧美资源在线观看| 亚洲精品99久久久久中文字幕| 亚洲第一网站免费视频| 久久99视频免费| 国产精品中文在线| 国产精品亚洲自拍| 97精品免费视频| 欧美裸体男粗大视频在线观看| 亚洲人av在线影院| 国产精品视频一区二区三区四| 国产亚洲欧美日韩美女| 国产精品jvid在线观看蜜臀| 久久99热这里只有精品国产| 懂色av中文一区二区三区天美| 日韩精品视频在线观看网址| 68精品国产免费久久久久久婷婷| 一本大道香蕉久在线播放29| 欧美高清视频免费观看| 国产精品电影观看| 最新国产精品亚洲| 色青青草原桃花久久综合| 久久久www成人免费精品| 久久久天堂国产精品女人| 欧美日韩美女在线| 九九久久国产精品| 国产午夜一区二区| 欧美电影《睫毛膏》| 欧美成年人在线观看| 国产精品极品美女在线观看免费| 国产成人亚洲精品| 欧美在线观看日本一区| 久久久久久久久网站| 97av在线播放| 亚洲欧美日韩国产成人| xvideos亚洲人网站| 日本欧美一二三区| 九九热99久久久国产盗摄| 久久99久久99精品中文字幕| 国产欧美日韩视频| 国自在线精品视频| 这里只有精品久久| 色一区av在线| 国产日韩欧美视频| 亚洲国产天堂网精品网站| 久久精品国亚洲| 国产精品一二三视频| 亚洲精品福利视频| 亚洲美女av在线播放| 国产成人精品a视频一区www| 国产视频精品xxxx| 久久99国产精品自在自在app| 欧美电影免费观看网站| 国产精品国模在线| 亚洲电影中文字幕| 日韩电影在线观看免费| 国产精品久久久久影院日本| 68精品久久久久久欧美| 亚洲国产小视频在线观看| 欧美劲爆第一页| 色偷偷91综合久久噜噜| 永久免费看mv网站入口亚洲| 懂色av中文一区二区三区天美| 亚洲欧美精品一区二区| 国产日韩欧美影视| 伦伦影院午夜日韩欧美限制| 成人做爰www免费看视频网站| 久久偷看各类女兵18女厕嘘嘘| 欧美性xxxx| 亚洲国产一区二区三区在线观看| 久久综合九色九九| 欧美精品精品精品精品免费| 欧美国产日韩视频| 欧美激情影音先锋| 国产mv免费观看入口亚洲| 国产色视频一区| 欧美裸身视频免费观看| 亚洲自拍另类欧美丝袜| 中文国产成人精品久久一| 色妞色视频一区二区三区四区| 欧美久久精品一级黑人c片| 亚洲成人黄色网| 亚洲精品999| 97精品伊人久久久大香线蕉| 日本久久久久亚洲中字幕|