赞
踩
纯暴力for循环,然后也知道给我4小时也跑不出来,所以不会做了
考模拟,答案:7913837
5分到手
import java.util.ArrayDeque; import java.util.Deque; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); for(int i=(int)1e7;i>=1;i--) { Deque<Integer> deque=new ArrayDeque<>(); int sum=0,a=i; while(a>0){ int m=a%10; a/=10; sum+=m; deque.addFirst(m); } while(sum<=i){ if(sum==i) { System.out.println(i); return; }else{ deque.add(sum); sum*=2; sum-=deque.poll(); } } } } }
这题应该能过大部分样例吧
import java.util.Scanner; public class Main3 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int a=0; int[] b=new int[n]; while(true){ String s=scanner.next(); if(s.equals("add")){ int val=scanner.nextInt(); a++; }else if(s.equals("sync")){ int val=scanner.nextInt(); b[val]++; }else{ int min=Integer.MAX_VALUE; for(int i=1;i<n;i++){ min=Math.min(min,b[i]); } System.out.println(min); } } } }
这题和去年的飞机降落有点像又不太像,总觉得太麻烦了我就没去多想,直接big胆骗分,下面是我的骗分伪代码(能过1个样例就满足了)
int sum1=总人数
int sum2=总座位数
if(sum1>sum2) print(sum2)
else print(sum1)
纯纯考数学题,数学期望?我直接不会,猜测答案区间范围直接输出打印
又是期望值,我的写法是floyd算法,一个传送门的距离算作1,算出每个点之间的最短传送门距离就好做了,这应该是正解?
import java.util.Arrays; import java.util.Scanner; public class Main6 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int m=scanner.nextInt(); int q=scanner.nextInt(); int[][] map=new int[n+1][n+1]; for(int i=1;i<=n;i++) { Arrays.fill(map[i],Integer.MAX_VALUE/3);//除以3避免溢出; } for(int i=0;i<m;i++) { int a=scanner.nextInt(); int b=scanner.nextInt(); map[a][b]=1; map[b][a]=1; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { for(int k=1;k<=n;k++) { map[i][j]=Math.min(map[i][j],map[i][k]+map[k][j]); } } } double res=0; for(int i=0;i<q;i++) { int begin=scanner.nextInt(); int door=scanner.nextInt(); int s=1;//包含起点 for(int j=1;j<=n;j++) { if(map[begin][j]<=door){ s++; } } res+=s; } res/=q; System.out.printf("%.2f",res); } }
这题是个dfs题,当时感觉条件太多了,一看就不会,采取了骗分的方法,因为t<=10,然后答案只会是Yes和No,所以我觉得可以骗,下面是骗分伪代码
int sum=矩阵1的总数
int sum2=16//4种字母的面积
if(sum<sum2)
print("No")
else
Random random=new Random()
int a=random.nextInt(2)
if(a==1)
print("Yes")
else print("No")
最后一题比前面简单,幸好没死磕前面不会的题
import java.util.Scanner; public class Main8 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int[] l=new int[n]; int[] w=new int[n]; int[] c=new int[n]; for(int i=0;i<n;i++) { l[i]=scanner.nextInt(); w[i]=scanner.nextInt(); c[i]=scanner.nextInt(); } int res=0; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(c[i]!=c[j] && ((l[i]> l[j] && w[i]<w[j]) || (l[i]<l[j] && w[i]>w[j]))){ res++; res%=(1e9+7); } } } System.out.println(res%(1e9+7)); } }
总的来说完整做了3题加一道填空,想问一下大家,我这水平能省一吗
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。