本周ACM校隊(duì)周賽考核題
1.簡(jiǎn)單數(shù)學(xué)(簽到題)
題目:
Joker想要買三張牌,但是三張牌太少了,老板不賣,除非Joker算出老板給出的數(shù)學(xué)題。
現(xiàn)在老板給出t組數(shù)據(jù),每一組數(shù)據(jù)有三個(gè)數(shù)a,b,c,要計(jì)算出每一組數(shù)據(jù)三個(gè)數(shù)相加是否是3的倍數(shù),是的話就輸出”Yes”,否則就輸出”No”.
?
代碼?
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int arr[][]=new int[n][3];
for(int i=0;i<n;i++) {
for(int j=0;j<3;j++) {
arr[i][j]=scanner.nextInt();
}
}
for(int i=0;i<n;i++) {
long sum=0;
for(int j=0;j<3;j++) {
sum+=arr[i][j];
}
if(sum%3==0) {
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
}
2.奇奇偶偶
題目:
Joker今天學(xué)完了數(shù)組,他發(fā)現(xiàn)在數(shù)組上面可以進(jìn)行很多有意思的操作,現(xiàn)在他想對(duì)一個(gè)長(zhǎng)度為n的數(shù)組a進(jìn)行以下操作:
將兩個(gè)元素?ai和 aj?互換,使得 i≠j、ai和 aj要么 都是偶數(shù),要么 都是奇數(shù)。
他想知道是否可以通過執(zhí)行任意次數(shù)(可能為零)的操作對(duì)數(shù)組進(jìn)行非遞減排序。
?
?
?分析:由于偶數(shù)只能和偶數(shù)交換,奇數(shù)只能和奇數(shù)交換,因此只需要判斷排序后的數(shù)組,跟原來的數(shù)組 相比,每個(gè)位置上的奇偶性是否改變,如果沒有改變,證明可以通過任意次數(shù)的操作對(duì)數(shù)組進(jìn)行非遞減排序,
代碼:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-->0){
int n = sc.nextInt();
int[] a = new int[n];
int[] x = new int[n];
for(int i = 0 ;i< n;i++){
a[i] = sc.nextInt();
x[i] = a[i];
}
Arrays.sort(a);
boolean flag = false;
for(int i = 0;i<n;i++){
if(a[i] % 2 != x[i] % 2) flag = true;
}
if(flag) System.out.println("No");
else System.out.println("Yes");
}
}
}
?3.圓的藝術(shù)(數(shù)學(xué)問題)
給定一個(gè)圓和n條直線,現(xiàn)在需要使用這n條線盡可能地把圓分成多份,問使用n條線最多能把圓分成幾份?
輸入描述:
第一行給定一個(gè)正整數(shù)T,代表數(shù)據(jù)組數(shù)。(T<=1e5)。
接下來T行,每行一個(gè)非負(fù)整數(shù),代表線的數(shù)量。(<=1e6)
輸出描述:
共T行,每行一個(gè)整數(shù),代表n條線最多能把圓分成幾份。
示例:輸入 2? ?2? 4? ?輸出:? 4? ?11
如果想要把圓分成的塊數(shù)最多,那么增加的每一條線都不能過前面所有的交點(diǎn),分析如下
?
圓面本身是一個(gè)部分;
第一條直線只能穿過一個(gè)部分(圓面本身),畫第一條直線時(shí)圓面加一個(gè)部分,圓面最多分成(1+1)=2(塊);
第二條直線只能穿過兩個(gè)部分,畫第二條直線時(shí)圓面加兩個(gè)部分,圓面最多分成(1+1+2)=4(塊);
第三條直線只能穿過三個(gè)部分,畫第三條直線時(shí)圓面加三個(gè)部分,圓面最多分(1+1+2+3)=7(塊);
第四條直線能穿過四個(gè)部分,畫第四條直線時(shí)圓面力四個(gè)部分,圓面最多分(1+1+2+3+4)=11(塊);
依次類推可得,n條直線最多能將圓面分成[1+(1+2+3+4+…+n)](塊)
也就是
因此,代碼如下
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while(t-->0){
long res = 0L;
long n = sc.nextLong();
System.out.println(n*(n-1) /2 + 1 + n);
}
}
}
4.又是時(shí)間問題
自從上一次,Joker解決完兩個(gè)時(shí)間點(diǎn)的差值之后,他奮發(fā)圖強(qiáng)努力學(xué)習(xí),終于又遇到了一個(gè)問題,他家的時(shí)鐘壞了,顯示的時(shí)間不一定正確(即大小和順序可能會(huì)出錯(cuò)),但是顯示的時(shí)間(時(shí)鐘,分鐘,秒鐘一定都是2位數(shù)的),所以他想請(qǐng)你幫他看看他家的時(shí)鐘?,F(xiàn)在給定t個(gè)字符串每個(gè)字符串都表示一個(gè)時(shí)間,現(xiàn)在要解決的問題是,判斷每一個(gè)字符串表示的時(shí)間在經(jīng)過換位后是否可以變成正確的時(shí)間,不可以的話就輸出No,否則就計(jì)算出這個(gè)字符串所能表示的正確時(shí)間的最大時(shí)間的總秒數(shù)。(注:正確時(shí)間:?(0 <= |時(shí)鐘|?<= 23, 0 <= |分鐘|?<= 59, 0 <= |秒鐘|?<= 59))
?輸入描述:
第一行輸入一個(gè)正整數(shù)t表示組數(shù);接下來t行每行一個(gè)字符串表示時(shí)間,
輸出描述:
對(duì)于是正確的時(shí)間就輸出,這個(gè)字符串所能表示的最大的正確時(shí)間的總秒數(shù),否則就輸出”No”;
例子:
輸入;
3 12:20:60 20:23:40 00:20:30
輸出
No 85220 73800
分析:考查的主要就是字符串轉(zhuǎn)換為數(shù)字,最后判斷一下
代碼如下
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
String s = sc.next();
String[] split = s.split(":");
Arrays.sort(split);
int[] arr = new int[]{Integer.valueOf(split[0]), Integer.valueOf(split[1]), Integer.valueOf(split[2])};
if (arr[0] >= 24 || arr[2] >= 60) {
System.out.println("No");
continue;
}
int cnt = 0;
for (int j = split.length - 1; j >= 0; j--) {
if (arr[j] <= 23) {
cnt = j;
break;
}
}
if (cnt==0){
System.out.println(arr[0]*3600+arr[2]*60+arr[1]);
}else if (cnt==1){
System.out.println(arr[1]*3600+arr[2]*60+arr[0]);
}else{
System.out.println(arr[2]*3600+arr[1]*60+arr[0]);
}
}
}
}
總之,這周的題不是很難,主要是對(duì)基本功的考察,由此可見自己的基本功還是不是很扎實(shí),需要好好練習(xí)
生活:
這周過的很忙,但是是那種虛無的忙,很討厭這種感覺,其實(shí),凡事,應(yīng)該提前做好規(guī)劃的,而不是總在等待deadline
向上的路總是難走的,因?yàn)樗鼰o時(shí)不刻磨練著一個(gè)人的意志力。
隔壁新鄉(xiāng)學(xué)院的同學(xué),再次聯(lián)系到的時(shí)候,沒想到已經(jīng)考研上岸了,他說,這一路,真的很難走,從大一的掛四課被給家長(zhǎng)打電話,到最后的考研上岸,整天整天的學(xué),整夜整夜的熬,度過了疫情三年,度過了大洪水,每年只有春節(jié)的時(shí)候回家,那時(shí)候覺得根本看不到希望,也很迷茫,不知道路在哪里......。
總之,一路辛苦,以后,繼續(xù)加油,追夢(mèng)人。每個(gè)人都會(huì)去選擇不同的路,但是,無論選擇了哪條路,都應(yīng)該靜下心來去沉淀,去學(xué)習(xí),遇到困難的時(shí)候,都應(yīng)該告訴自己再往前一步,哪怕是自救還是借助他人的力量,而不是就此躊躇不前。
黎明之前最黑暗,誰先放棄誰笨蛋!
????????前面終有些光亮在等著你????????
?下周就要繼續(xù)寫項(xiàng)目了,還有每天一兩道算法題,還有對(duì)vue的知識(shí)點(diǎn)的理解和掌握。文章來源:http://www.zghlxwxcb.cn/news/detail-737740.html
偶,對(duì)了,收到了?全國(guó)大學(xué)生英語競(jìng)賽的省級(jí)二等獎(jiǎng)證書了,是上學(xué)期的比賽了,開心開心,繼續(xù)加油文章來源地址http://www.zghlxwxcb.cn/news/detail-737740.html
到了這里,關(guān)于第三次ACM校隊(duì)周賽考核題+生活隨筆的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!