深入解析DP83848以太网PHY芯片:从半双工/全双工原理到编程架构与硬件设计
2026/7/27 16:29:41
解题思路:
importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);longn=in.nextLong(),m=in.nextLong(),a=in.nextLong(),b=in.nextLong();System.out.println(cnt(n,m,a,b));}privatestaticlongcnt(longn,longm,longa,longb){longret=0;for(longi=0;i<=Math.min(n/2,m);i++){longapp=n-i*2;longpea=m-i;ret=Math.max(ret,i*a+Math.min(app,pea/2)*b);}returnret;}}动态规划:
importjava.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intn=in.nextInt();int[]nums=newint[n+1];for(inti=1;i<=n;i++)nums[i]=in.nextInt();// 在 i 天买入、卖出的最大收益int[]f=newint[n+1];int[]g=newint[n+1];f[1]=-nums[1];for(inti=2;i<=n;i++){f[i]=Math.max(f[i-1],g[i-1]-nums[i]);g[i]=Math.max(g[i-1],f[i-1]+nums[i]);}System.out.println(g[n]);}}贪心
importjava.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intn=in.nextInt();int[]nums=newint[n+1];for(inti=1;i<=n;i++)nums[i]=in.nextInt();intret=0;// 1 2 3for(inti=2;i<=n;i++){intp=nums[i]-nums[i-1];if(p>0)ret+=p;}System.out.println(ret);}}用列表手机字符串,再反转列表,最后拼接为字符串即可
importjava.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);List<String>list=newArrayList<>();while(in.hasNext())list.add(in.next());Collections.reverse(list);System.out.println(String.join(" ",list));}}