第一题:
2019的二进制java
package lq; public class A { public static void main(String[] args) { System.out.println(Integer.toBinaryString(2019)); } }
第二题:
1200000的全部约数,暴力破node
package lq; import java.util.Scanner; public class B { public static void main(String[] args) { int count=0; for(int i=1;i<=Math.sqrt(1200000);i++){ if((1200000/i)*i==1200000){ count++; } } System.out.println(count*2); System.out.println(Math.sqrt(1200000)); } }
第三题:
2019节点无向图最少边,
一个点作中心,
其余2018点围绕在它旁边,
每一个点对应一条边,
中心点没有,
2019-1=2018
第四题:
1-2019内含9的数量,暴力破web
package lq; public class D { public static int count=0; public static boolean check(int n){ while(n>0){ if(n%10==9)return true; n/=10; } return false; } public static void main(String[] args) { for(int i=0;i<=2019;i++){ if(check(i)){ count++; } } System.out.println(count); } }
第五题:
求字符串中元辅音字母的数量,暴力破数组
package lq; import java.util.Scanner; public class E { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String s=sc.nextLine(); char c[]=s.toCharArray(); int y=0,f=0; for(int i=0;i<c.length;i++){ if(c[i]=='a'||c[i]=='e'||c[i]=='i'||c[i]=='o'||c[i]=='u')y++; else f++; } System.out.println(y); System.out.println(f); } }
第六题:
有n个数,求其中任意两个数组成m的倍数的倍数对有多少个?
暴力破svg
package lq; import java.util.Scanner; public class F { public static void main(String[] args) { int count=0; Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); int arr[]=new int [n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); arr[i]%=m; } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(arr[i]+arr[j]==0||arr[i]+arr[j]==m){ count++; } } } System.out.println(count); } }
第七题:
找出1~n内各个位上没有重复数字的个数
暴力破spa
package lq; import java.util.Scanner; public class G { public static boolean check(int i){ int arr[]=new int[10]; while(i>0){ arr[i%10]++; i/=10; } for(int j=0;j<10;j++) if(arr[j]>1) return false; return true; } public static void main(String[] args) { int count=0; Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for(int i=1;i<=n;i++) if(check(i)) count++; System.out.println(count); } }
第八题:
梅花桩
从(1,1)走到(m,n),最大移动距离为d,求最少移动次数
dfs深搜暴力解;code
package lq; import java.util.Scanner; public class H { public static int min=Integer.MAX_VALUE; public static int n,m; public static double d; public static void dfs(int x,int y,int step){ if(x>n||y>m||step>min){ return; }else if(x==n&&y==m){ min=min<step?min:step; }else{ for(int i=0;i<=d;i++){ for(int j=0;j<=d;j++){ if((i*i+j*j)<=(d*d)&&(i*i+j*j)>0){ dfs(x+i,y+j,step+1); } } } } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); d=sc.nextDouble(); dfs(1,1,0); System.out.println(min); } }
第九题:
花店运花
nm矩阵分红两部分
n(m-x)和n*x;
暴力求解orm
package lq; import java.util.Scanner; public class I { public static void main(String[] args) { Scanner sc=new Scanner(System.in); long mi=200000000L; int cur=0; int sum=0; int n=sc.nextInt(),m=sc.nextInt(); int arr[][]=new int[n][m]; int ans[]=new int[m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ arr[i][j]=sc.nextInt(); sum+=arr[i][j]; ans[j]+=arr[i][j]; } } for(int i=0;i<ans.length;i++){ cur+=ans[i]; mi=mi<Math.abs(sum-cur-cur)?mi:Math.abs(sum-cur-cur); } System.out.println(mi); } }
第十题:
我有点质疑这个题,固然,极有多是我作错了,
题意是len=两点间距离(考虑坐标和高度);
但是我考虑高度过样例是错的
而不考虑高度,仅考虑坐标,求解样例的答案确是正确的,
emmm。。可能错了,
写下代码吧。xml
package lq; import java.util.Scanner; public class J { public static double maxlen=-1; public static double buf[][]; public static void dfs(int cur,double len,boolean b[]){ for(int j=0;j<buf[cur].length;j++) if(buf[cur][j]>0){ b[j]=true; dfs(j,len+buf[cur][j],b); } boolean ok=true; for(int i=0;i<b.length;i++) if(!b[i])ok=false; if(ok)maxlen=maxlen>len?maxlen:len; } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int node[][]=new int[n][3];//x,y,h for(int i=0;i<n;i++) for(int j=0;j<3;j++) node[i][j]=sc.nextInt(); int d=sc.nextInt(); double xyz=-1; buf=new double[n][n]; for(int i=0;i<n;i++) for(int j=0;j<n;j++){ xyz=Math.sqrt((node[i][0]-node[j][0])*(node[i][0]-node[j][0])+(node[i][1]-node[j][1])*(node[i][1]-node[j][1])); if(xyz<=d&&node[i][2]>node[j][2])buf[i][j]=xyz; } boolean b[]=new boolean [n]; b[0]=true;dfs(0,0,b); System.out.println(String.format("%.2f",maxlen)); } }