首页 > 其他分享 >SMU Winter 2023 Round #10 (Div.2)

SMU Winter 2023 Round #10 (Div.2)

时间:2023-02-16 22:44:37浏览次数:40  
标签:10 Winter s2 SMU System println scanner 社团 Scanner

A.社团招新

题目:

计网院里面有n个学生。
他们中任意一些人都可以成立一个社团。
如果社团满足3男有1女,就可以一对情侣一对基。
但是院里要求这些社团有如下要求:
• 为方便社团决议(少数服从多数),每个社团里面只有奇数个成员;
• 为方便社团联谊,每两个社团的共同成员是偶数。
现在,计网院的海王哥哥想要知道最多可以成立几个社团。
Input
第一行是一个整数T (1 ≤ T ≤ 200000),表示样例的个数。
以后每行一个样例,为一个整数n (3 ≤ n ≤ 1000000)。
Output
每行输出一个样例的结果。

代码:

点击查看代码
import java.util.Scanner;
public class MainA {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int T = scanner.nextInt();
		while(T-->0) {
			int n = scanner.nextInt();
			System.out.println(n);
		}
	}
}

B.字符串

题目:

lililalala和kukyo在 玩 一 个 字 符 串 游 戏 , 具 体 规 则 为 : 给 定 一 个 只 含 小 写 字 母 的 字 符
串S,lililalala和kukyo轮流在S上选择两个相同且相邻的字母删除,删除完之后再将两端连接起来。比
如"funny"→"fuy","aab"→"b")。如果某一方不能执行删除操作则判负,另一方获胜。 现在lililalala先
进行操作,假设双方都以最优策略进行游戏,谁会获胜?
Input
第一行一个整数T (1 ≤ T ≤ 1000),表示测试样例个数。 然后的每一行表示一个测试样例,包含一个字
符串S,字符串只含小写英文字母,长度不超过105。 保证输入中所有字符串的长度之和
P|S| ≤ 106。
Output
对每个样例输出一行,如果lililalala能获胜输出"Yes",否则输出"No"。

代码:

点击查看代码
import java.util.Scanner;
public class MainB1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int T = scanner.nextInt();
		int count = 0;
		while(T-->0) {
			String s = scanner.next();
			String s2 = "";
			count = 0;
			while(!s.equals(s2)) {
				for(int i = 0;i < s.length()-1;i++) {
					if(s.charAt(i)==s.charAt(i+1)) {
						count++;
						i++;
					}else {
						s2+=s.charAt(i);
					}
				}
				s2+=s.charAt(s.length()-1);
				if(s.equals(s2)) {
					break;
				}else {
					s = s2;	
					s2="";
				}
			}
			if(count%2==0) {
				System.out.println("No");
			}else {
				System.out.println("Yes");
			}
		}
	}
}

D.香蕉

题目:

你有n根香蕉,要分给m只猴子,每只猴子都要有香蕉。无论怎么分配,请问至少多少只猴子分得的香
蕉数是一样的?
比如有5根香蕉,分给3只猴子,我们只能按(1, 1, 3)或者(1, 2, 2)分配,这样无论怎么分配,至少都有2只
猴子获得的香蕉是一样的。如果有6根香蕉,分给3只猴子,那么我们可以按(1, 2, 3)分配,这样的话,至
少1只猴子分得的香蕉数是一样的。
Input
第一行输入一个整数T‘(1 ≤ T ≤ 1000),表示样例的个数。
每行一个样例,为两个整数n (1 ≤ n ≤ 10^18), m (1 ≤ m ≤ 10^9
, m ≤ n)。
Output
依次每行输出一个样例的结果,为一个整数。

代码:

点击查看代码
import java.util.Scanner;
public class MianD {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int T = scanner.nextInt();
		while(T-->0) {
			long n = scanner.nextLong();
			long m = scanner.nextLong();
			long k = m*(m+1)/2;
			if(n==m) {
				System.out.println(n);
			}else if(n>=k){
				System.out.println(1);
			}else {
				if(n-m==1) {
					System.out.println(m-1);
				}else {
					if(n-m<(m+1)/2) {
						System.out.println(n-m);
					}else if(n-m==2) {
						System.out.println(2);
					}
					else if(n-m==(m+1)/2){
						System.out.println(n-m<m-(n-m)?n-m:m-(n-m));
					}else {
						System.out.println(2>m-(n-m)?2:m-(n-m));
					}
				}
			}
		}
	}
}

标签:10,Winter,s2,SMU,System,println,scanner,社团,Scanner
From: https://www.cnblogs.com/Tcoo/p/17093660.html

相关文章