S星球由个国家组成,每个国家的实力为. 小明提出了结盟的想法,但每个国家的想法不一,有的同意结盟,有的不同意结盟. 因为小明的国际实力,他可以选择一个长度为的区间,并让区间内的国家强行同意结盟. 小明想问问你结盟国家的实力和最大是多少.
区块链毕设网qklbishe.com为您提供问题的解答
S星球由个国家组成,每个国家的实力为.
小明提出了结盟的想法,但每个国家的想法不一,有的同意结盟,有的不同意结盟.
因为小明的国际实力,他可以选择一个长度为的区间,并让区间内的国家强行同意结盟.
小明想问问你结盟国家的实力和最大是多少.
此题在理解之后,不难发现是固定滑动窗口问题,可先将初始结盟实力用一个变量保存,后续滑动窗口只专注于处理非结盟增加的实力。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); // 窗口大小 int k = scanner.nextInt(); // 滑动窗口 int countries[][] = new int[n][2]; long power = 0; for(int i=0;i<2;i++){ for(int j=0;j<n;j++){ countries[j][i] = scanner.nextInt(); if(countries[j][1]==1){ power+=countries[j][0]; } } } int right = k; int left = 0; long addNow = 0; for(int i=0;i<right;i++){ // 可策反 if(countries[i][1]==0){ addNow+=countries[i][0]; } } long max = addNow; while(right<n){ if(countries[left][1]==0){ addNow-=countries[left][0]; } if(countries[right][1]==0){ addNow+=countries[right][0]; } left++; right++; max = Math.max(max,addNow); } System.out.println(max+power); } }
55:17
以上就是关于问题S星球由个国家组成,每个国家的实力为.
小明提出了结盟的想法,但每个国家的想法不一,有的同意结盟,有的不同意结盟.
因为小明的国际实力,他可以选择一个长度为的区间,并让区间内的国家强行同意结盟.
小明想问问你结盟国家的实力和最大是多少.的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训