当前位置: 首页 > news >正文

Codeforces Round 1027 (Div. 3)-G

题目链接

题目翻译:

思路:贪心,就是尽可能把数组里的每个数展开(也就是让操作次数尽可能达到k次这个要求),比如12,可以这样展开:

容易观察到奇数是无法展开的,然后展开有条件,比如我的12展开成4个3,会不会跟数组右边那个数字是一样的呢?所以这样的分支有可能是不合法的,那我右分支就只能保留6这个数字,然后左边正常展开,左边为什么正常展开?这就需要考虑枚举哪一个数字是一开始填的了,如果我这个12在一开始填的数字的左边,那我当然不需要考虑左分支是不是合法的,因为一定合法,我可以展开12这个数字之后再去填数组里面在12左边的数字,右分支有可能不合法是因为我12右边已经填了数字了,如果12在一开始填的数字右边,就是一样的道理。

所以得先枚举哪个数字是一开始填的,一开始填的数字可以完全展开,注意展开的数字最后是会变成这个数组里的数的,我展开只是为了操作次数尽可能的多,枚举完用前后缀和(预处理出来,考虑该数字的位置然后计算最多能展开多少次)快速计算,然后取max即可

代码:

package cx3;
import java.util.*;
import java.io.*;
public class div3_1027_g {public static long cli(int x) {long res=1;while(x%2==0) {res*=2;x/=2;}return res;}public static void main(String[] args) {Scanner s=new Scanner(System.in);int t=s.nextInt();while(t-->0) {int n=s.nextInt(),k=s.nextInt();int a[]=new int [n+10];for(int i=1;i<=n;i++) a[i]=s.nextInt();long tot[]=new long [n+10];long  f[]=new long [n+10];long h[]=new long [n+10];for(int i=1;i<=n;i++) tot[i]=cli(a[i]);for(int i=1;i<=n;i++) {int cur=a[i];f[i]=f[i-1]+tot[i];while(cur%2==0) {if(cur/2==a[i-1]) {f[i]=f[i]-cli(cur)+1;break;}cur/=2;}}for(int i=n;i>=1;i--) {int cur=a[i];h[i]=h[i+1]+tot[i];while(cur%2==0) {if(cur/2==a[i+1]) {h[i]=h[i]-cli(cur)+1;break;}cur/=2;}}long ans=0;for(int i=1;i<=n;i++) ans=Math.max(ans,tot[i]+h[1]-h[i]+f[n]-f[i]);if(ans>=k) System.out.println("YES");else System.out.println("NO");}}}

相关文章:

  • SpringBoot+Vue+MySQL全栈开发实战:前后端接口对接与数据存储详解
  • AI 内容农场治理与高质量信息获取指南
  • 发布一个angular的npm包(包含多个模块)
  • Playwright:高效处理浏览器兼容性的自动化测试利器
  • 【Pandas】pandas DataFrame interpolate
  • VSomeip库- 编译使用
  • 【Linux基础知识系列】第十七篇-使用Docker进行容器管理
  • 小白进阶shell学习-----脚本实战案例
  • 高防服务器中高防和硬防之间的区别
  • 上海市计算机学会竞赛平台第六届上海市青少年算法竞赛网络赛(青年组)文件排序
  • 交叉编译,对于初学者来说是个极难跨过去的砍
  • DICOM批量修改工具
  • 七.割草机技术总结--4G模块CAT1电源设计
  • SQL进阶之旅 Day 23:事务隔离级别与性能优化
  • 页面渲染流程与性能优化
  • Git操作问题及解决方案-记录5
  • 使用mpu6500, PID,互补滤波实现一个简单的飞行自稳控制系统
  • 26考研 专业课 百度网盘夸克网盘
  • K8S容器介绍
  • 如何安全地准备 iPhone 以旧换新(分步说明)
  • 网站服务器的搭建/网站推广网络推广
  • 武汉做网站的大公司有哪些/企业网站优化解决方案
  • 用dw做网站首页步骤/网络seo首页
  • 怎么做免费网站如何让百度收录/网站营销策划
  • 莱西网站制作联赛与超/谷歌推广代理商
  • 网站源码使用/上海网站推广排名公司