牛客小白月赛88_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)
A
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int maxn=0;
char flag=' ';
for(int i=0;i<m;i++)
{
char c=sc.next().charAt(0);
int x=sc.nextInt();
if(x>maxn)
{
maxn=x;
flag=c;
}
}
int sum = n / maxn;
if (sum > 1000) {
System.out.print("-1");
} else {
if (sum == 0||n%maxn!=0) sum++;
for (int i = 0; i < sum; i++) {
System.out.print(flag);
}
}
}
}
B
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
String s1=sc.nextLine();
String s2=sc.nextLine();
String s3=sc.nextLine();
String s4=sc.nextLine();
String s5=sc.nextLine();
char a=s2.charAt(0);
char fh1=s3.charAt(5);
char fh2=s3.charAt(6);
char b=s4.charAt(0);
char c=s3.charAt(0);
if(fh1=='&')
{
if(a=='1'&&b=='1') System.out.println("1");
else System.out.println("0");
}
else if(fh1=='1')
{
if(c=='1') System.out.println("0");
else System.out.println("1");
}
else if(fh2=='1')
{
if(a=='0'&&b=='0') System.out.println("0");
else System.out.println("1");
}
}
}
C
//TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。
TreeSet<Integer> set=new TreeSet<>();
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int n=sc.nextInt();
//TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。
TreeSet<Integer> set=new TreeSet<>();
for(int i=0;i<n;i++){
int x= sc.nextInt();
int y= sc.nextInt();
set.add(x*60+y-1);
set.add(x*60+y-3);
set.add(x*60+y-5);
}
System.out.println(set.size());
for(Integer i: set)
{
System.out.println(i/60+" "+i%60);
}
}
}
D
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int[] a=new int[m+1];
int[][] dp=new int[m+1][n];
for(int i=0;i<m;i++)
{
int x= sc.nextInt();
a[i]=x%n;
}
dp[0][0]=1;
for(int i=1;i<=m;i++)//每次输入进来一个数字
{
for(int j=0;j<n;j++)//就带过总数里面去
{
if(dp[i-1][j]!=0) //如果自上次也没有到达的地方
{
dp[i][(j-a[i-1]+n)%n]=1;//进行标记
dp[i][(j+a[i-1])%n]=1;
}
}
}
System.out.println(dp[m][0]==0?"NO":"YES");
}
}