日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2017-AHU校赛网络赛解题报告

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017-AHU校赛网络赛解题报告 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

E題的網(wǎng)絡(luò)流還不會,先放著。由于打網(wǎng)絡(luò)賽的時候在南京玩,隨便找了家網(wǎng)吧做了前面幾題,后面的幾題由于比賽結(jié)束還沒有放到OJ上評測,但都和AC的代碼對拍100項以上沒問題的,不出意外都能A。(這是個flag···)

A.成功人士

題面:

Description
學(xué)校里共有n個學(xué)生,m門課,如果某個學(xué)生在某門課中拿到了最高分(可以是并列),則這個學(xué)生是成功人士。現(xiàn)在給出n個學(xué)生的m門課的成績,問有多少個成功人士。

Input
第一行,一個整數(shù)t,表示測試數(shù)據(jù)組數(shù),(1<=t<=100)
對于每組測試數(shù)據(jù),第一行兩個整數(shù),n和m,(1<=n,m<=50)
接下來n行,每一行有m個數(shù)字(中間不分隔),表示這個學(xué)生每門課的成績,其中成績?yōu)?-9的整數(shù)。

Output
每組測試數(shù)據(jù),一個整數(shù),表示有多少個成功人士。

Sample Input
2
3 3
223
232
112
3 5
91728
11828
11111

Sample Output
2
3

思路:

在第一次循環(huán)讀入成績的時候,得出每一門的最高成績并記錄。之后再掃一遍數(shù)人數(shù)就行了。

代碼:

#include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef struct {char grade[60];//由于題面上各個成績之間沒有空格,所以干脆用字符串進行處理 } Stu; int main() {int m,n,t;Stu student[60];cin>>t;while(t--){char maxn[60];memset(maxn,'0',sizeof(maxn));memset(student,0,sizeof(student));cin>>n>>m;for(int i=0;i<n;++i){for(int j=0;j<m;++j){cin>>student[i].grade[j];if(student[i].grade[j]>maxn[j])maxn[j]=student[i].grade[j];}}int ans=0;for(int i=0;i<n;++i){for(int j=0;j<m;++j){if(student[i].grade[j]==maxn[j]){ans++;//找到一個記錄后記得跳出這一層循環(huán),因為不管一個人的成績有多少門第一,都只能算一次。break;}}}cout<<ans<<endl;}return 0; }

B.迭代歸一

題面:

Description
我們把一個正整數(shù)的每一位上的數(shù)字加起來,得到新的數(shù)字,我們把這樣的一次操作稱為一次迭代變換。直到這個數(shù)字只有一位數(shù)。
如,9876經(jīng)過一次變換成為9+8+7+6=30,經(jīng)過第二次變換成為3+0=3,結(jié)束。
那么9876就經(jīng)過了兩次迭代變換。如今給一個正整數(shù),問需要迭代變換多少次后會停止。

Input
一個整數(shù)t,表示測試數(shù)據(jù)組數(shù)(1<=t<=100)。
對于每組測試數(shù)據(jù),只有一行,表示一個正整數(shù),正整數(shù)最多有100000位。

Output
輸出若干行,每行對應(yīng)每組數(shù)據(jù)需要迭代變換的次數(shù)

Sample Input
3
2
10
99999999

Sample Output
0
1
2

思路:

由于正整數(shù)比較大,所以用數(shù)組進行保存。但處理過一次就不需要了,拿int存就夠了。
純模擬題,按題意敲就行了。

代碼:

#include<iostream> #include<cstring> #include<cstdlib> using namespace std; int main() {int t;cin>>t;while(t--){char number[100000];memset(number,0,sizeof(number));cin>>number;long long a=0,b=0;//比賽的時候以防萬一用的是long long,但其實int應(yīng)該也夠了int len=strlen(number);if(len==1){cout<<"0"<<endl;continue;}int ans=1;for(int i=0;i<len;++i)b+=number[i]-'0';//轉(zhuǎn)化為數(shù)字while(b>=10){int a=0;while(b>0){a+=b%10;b/=10;}b = a;ans++;}cout<<ans<<endl;}return 0; }

C.置換的魔術(shù)

題面:

Description
有n個正整數(shù),其中1到n的正整數(shù)出現(xiàn)且只出現(xiàn)一次的序列,稱為1-n的一個排列。
如1,2,3和3,1,2都是1-3的排列,但是1,3,3不是1-3的排列。
如今,給n個數(shù),問最少修改幾個數(shù),可以使得序列成為1-n的一個排列。

Input
一個整數(shù)t,表示測試數(shù)據(jù)的組數(shù),(1<=t<=210)
對于每一組測試數(shù)據(jù),第一行為一個整數(shù)n,(1 <= n <= 500)
第二行有n個整數(shù)a1,a2,……an,空格分隔,(ai為任意的32位有符號正整數(shù))。
保證多組數(shù)據(jù)中的n的和不超過100000。

Output
每組測試數(shù)據(jù),輸出一個整數(shù),表示最少修改幾個數(shù)。

Sample Input
2
5
1 3 2 4 5
6
1 1 1 1 1 1

Sample Output
0
5

思路:

給的數(shù)有可能是負數(shù)或者是大于n的數(shù),要小心。
用一個bool數(shù)組標記一下,最后掃一遍計數(shù)應(yīng)該就可以了。

代碼:

#include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> using namespace std; int main() {int T;cin>>T;while(T--){int n;int a[510];bool flag[510];memset(flag,true,sizeof(flag));cin>>n;for(int i=0;i<n;++i){cin>>a[i];if(a[i]>0&&a[i]<=n)//控制數(shù)據(jù)范圍flag[a[i]]=false;}int cnt=0;for(int i=1;i<=n;++i){if(!flag[i])cnt++;}cout<<cnt<<endl;}return 0; }

D.買買買

題面:

Description
一天Alice打開了她日常玩的游戲,發(fā)現(xiàn)她里面還有n個游戲幣,她想把這些游戲幣花光。
現(xiàn)在可以買的一共三種道具,分別是房子(每一個價值1234567個游戲幣),車子(每一個價值123456個游戲幣),電腦(每一個價值1234個游戲幣)。
現(xiàn)在她想知道,通過買這三種道具是否可以把n個游戲幣全部花光。

Input
第一行,一個數(shù)字t(1<=t<=100)。代表測試數(shù)據(jù)數(shù)量。
對于每一組測試數(shù)據(jù),一個整數(shù)n(1<=n<=1000000000),代表現(xiàn)在的游戲幣。

Output
輸出n行,每行輸出”YES”或者”NO”,表示她可以或者不可以把游戲幣全部花光。

Sample Input
2
1359257
17851817

Sample Output
YES
NO

思路:

由于車,房子的價值都很大,所以能用枚舉逐個嘗試。然后把剩下的錢看對于電腦的錢取%,看是否為零就行了。

代碼:

#include<iostream> #include<cstdlib> #define HOUSE 1234567 #define CAR 123456 #define COM 1234 using namespace std; int main() {cin.sync_with_stdio(false);int T;cin>>T;while(T--){bool flag=false;long long n;cin>>n;int mh=n/HOUSE;for(int i=0;i<=mh;++i){int mcar=(n-i*HOUSE)/CAR;for(int j=0;j<=mcar;++j)if((n-i*HOUSE-j*CAR)%COM==0){flag=true;}if(flag)break;}if(flag)cout<<"YES\n";elsecout<<"NO\n";}return 0; }

F.周末大法好

題面:

Description
在火星上,每年有x天。驚奇的是,和地球上一樣,火星上也是有星期的概念的,連續(xù)的5天工作日,然后連續(xù)的2天周末。他們只有周末放假。
現(xiàn)在你的任務(wù)是,確定火星上每年可能的最少放假的天數(shù)和最多放假的天數(shù)。

Input
第一行,一個數(shù)字n。代表測試數(shù)據(jù)數(shù)量。
接下來n行,每行一個整數(shù)x (1<=x<=1,000,000),代表火星每年有x天。

Output
輸出n行,每行兩個整數(shù)。代表火星上每年可能的最少放假的天數(shù)和最多放假的天數(shù)。

Sample Input
2
14
2

Sample Output
4 4
0 2

思路:

先把一年天數(shù)除以7乘以2,這是最少的放假天數(shù)。
然后一年天數(shù)對7取%,剩下的如果是6,則最少天數(shù)還要再加一。
而最多的天數(shù)應(yīng)該是至少的放假天數(shù)加上min(一年天數(shù)%7,2),因為如果只剩下一天了,最多只能放假一天。而其他情況則可以是在一年開頭多過一個周末(也就是兩天)

代碼:

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {int t;cin>>t;while(t--){int x;cin>>x;int Min=x/7*2,Max;int mod=x%7;if(mod==6)Min++;Max=x/7*2+min(mod,2);cout<<Min<<" "<<Max<<endl;}return 0; }

G. 交換大法好

題面:

Description
有一天,天上掉餡餅了。不過不是直接掉餡餅,是告訴你你將要得到的餡餅的數(shù)量a。聰明的你得到了一種魔法,可以在整數(shù)a中交換任意兩個相鄰的數(shù)字。而這種魔法,你最多只能使用k次。你使用魔法操作a,得到的最大的結(jié)果就是你最終獲得的餡餅數(shù)量。

你最多可以獲得的餡餅數(shù)量是多少呢?

Input
第一行,一個數(shù)字n(1<=n<=60)。代表測試數(shù)據(jù)數(shù)量。
接下來n行,每行兩個整數(shù)a和k(1<=a<=1,000,000,000; 0<=k<=100)。

Output
輸出n行,每行一個整數(shù),代表你最多使用魔法k次,可以得到的最大的數(shù)字。

Sample Input
2
1990 1
1034 2

Sample Output
9190
3104

思路:

暴力找

代碼:

#include<iostream> #include<cstring> #include<cstdlib> using namespace std; void swap(char *a,char *b) {char t=*a;*a=*b;*b=t; } int main() {int T;cin>>T;while(T--){char s[20];int k;cin>>s>>k;int len=strlen(s);if(len==1){cout<<s<<endl;continue;}char Max='0';int Maxid=-1;for(int i=0;i<len;++i){if(k<=0)break;Max = s[i]; Maxid = i;for(int j=i;j<=i+k&&j<len;++j){if(s[j]>Max){Max=s[j];Maxid=j;}}k-=Maxid-i;for(int x=Maxid;x>i;--x)swap(&s[x],&s[x-1]);}cout<<s<<endl;}return 0; }

H. 今年多少歲

題面:

Description
小明出生于1937年7月7日,問對于給定的日期,小明幾周歲了,不足一周年的部分可以忽略。
注意:1938年7月6日,小明0周歲,1938年7月7日小明1周歲,同理1939年7月6日,小明1周歲,1939年7月7日,小明2周歲。

Input
一個整數(shù)t(1<=t<=100),表示數(shù)據(jù)組數(shù)
對于每組測試數(shù)據(jù),三個整數(shù),逗號隔開,分別表示給定日期的年、月、日。給定的日期保證合法, 而且一定是小明出生后的日期,且小明的歲數(shù)保證在100以內(nèi)。

Output
對于每一組數(shù)據(jù),輸出一個整數(shù),表示小明的周歲數(shù)。

Sample Input
2
1938 7 6
1938 7 7

Sample Output
0
1

思路:

先年份相減,然后看月份和日期,若不夠一年,則結(jié)果減一。真·簽到題,沒啥說的。

代碼:

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {const int year=1937,month=7,day=7;int T;cin>>T;while(T--){int y,m,d;cin>>y>>m>>d;int ans=0;ans=y-year;if(m<month)ans--;if(m==month&&day>d)//如果不夠一年的情況ans--;cout<<ans<<endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的2017-AHU校赛网络赛解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区免费看 | 亚洲天堂2015 | 亚洲成人www | 欧美激情在线一区二区 | 射进来av影视网 | 野外做受又硬又粗又大视频√ | 国产午夜精品理论片 | 精品在线免费视频 | 毛片aa| 亚洲福利网站 | 欧美aaaa视频| 国产在线a | 非洲黄色片 | 午夜肉体高潮免费毛片 | 一级成人黄色片 | 国产精品天天干 | 性欢交69精品久久久 | 深夜精品 | 欧美在线不卡视频 | 涩视频在线观看 | 99色在线 | 久久成人综合网 | 亚洲精品欧洲 | 精品人妻一区二区三区蜜桃 | 欧美aa级| 91免费成人 | 99热香蕉 | 久久亚洲影院 | 永久免费看片在线播放 | 欧美自拍第一页 | 国产婷婷在线视频 | 爱视频福利网 | 91免费 看片 | 欧洲视频一区二区 | 韩国一区二区三区视频 | 国产做受网站 | 欧美一级片在线看 | 欧美国产一区二区三区 | 99av在线| 国产中文字幕久久 | 91久久电影 | 啪啪激情网 | 国产性一乱一性一伧一色 | 中文字幕在线视频播放 | 国产精品亚洲一区二区无码 | 在线免费中文字幕 | www国产www| 在线精品播放 | 精品久久久久久亚洲精品 | 亚洲图片在线视频 | 中国一级黄色大片 | 爱情岛亚洲品质自拍极速福利网站 | 亚洲有吗在线 | 国产拍拍视频 | 日韩成人在线一区 | 欧美成人一区二区三区片免费 | 久草综合在线 | 一级黄色短视频 | 精品国产18久久久久久 | 欧美精品videos| 亚洲天堂视频一区 | 天堂中文在线网 | 精品一区电影 | 日韩三区在线 | 久久撸视频| 懂色av蜜臀av粉嫩av分享吧最新章节 | 动漫av一区二区三区 | 亚洲一级无毛 | 四虎影视永久免费 | 在线天堂中文在线资源网 | 欧美色综合网 | 黄色av网址在线观看 | 国产中文在线播放 | 欧美顶级少妇做爰 | 国产成人精品一区二区在线观看 | 我的丝袜美腿尤物麻麻 | av无遮挡 | 日本一本久草 | 青青视频一区二区 | 天堂999 | 国产农村妇女精品 | 亚洲视频在线播放免费 | 污污网址在线观看 | 天堂…中文在线最新版在线 | 久草免费资源站 | 日韩中文字幕在线视频 | 中文字幕高清在线 | 成人免费高清在线播放 | 中文字幕欧美激情 | 一区二区日韩 | 色涩久久 | 在线亚洲免费 | 视频在线观看你懂的 | 国产中文字幕在线免费观看 | 99在线看 | 久久无码视频网站 | 亚洲精品2 | 寂寞人妻瑜伽被教练日 | 中文字幕一区二区三 |