D. Nene and the Mex Operator

 

 解题思路

  • 若选定一个区间\left [ l,r \right ],则可以构造成值全为r-l+1
  • 构造方如下:
  • 先将区间全变为0
  • (若区间有0且不全为0mex [l,r]两次(全变为一个值后再全变为0),若没有0则一次,若已经全为0则0次)
  • 保留r为0,依次递归构造[l,r-1],[l+1,r-1],[l+2,r-1]\cdots,每次保留左端值
  • 则构造出区间值为r-l,r-l-1,\cdots 2,1,0,再mex一次变为全r-l+1
  • 例:0 0 0 0->1 0 0 0->2 2 0 0->2 0 0 0-> 2 1 0 0->3 3 3 0->3 0 0 0->……->3 2 1 0->4 4 4 4 
  • 预处理出需要构造的区间
  • Sum[i]<Sum[j]+(i-j+1)*(i-j+1)
import java.io.*;
import java.math.BigInteger;
import java.util.*;//implements Runnable
public class Main {static long md=(long)1e9+7;static long Linf=Long.MAX_VALUE/2;static int inf=Integer.MAX_VALUE/2;static int N=200010;static int n=0;static int m=0;staticclass M{int x,y;public M(int u,int v){x=u;y=v;}}static Vector<M> stp;static long[] a;static void get(int l,int r){if(l==r){if(a[l]!=0)stp.add(new M(l,r));stp.add(new M(l,r));a[l]=1;return;}boolean zero=false;boolean ok=true;for(int i=l;i<=r;++i){if(a[i]==0)zero=true;else ok=false;}if(!ok){if(zero)stp.add(new M(l,r));stp.add(new M(l,r));for(int i=l;i<=r;++i)a[i]=0;}for(int i=l;i<r;++i)get(i,r-1);stp.add(new M(l,r));for(int i=l;i<=r;++i)a[i]=r-l+1;}static void solve() throws Exception{AReader input=new AReader();
//        String fileName="";
//		Scanner input=new Scanner(new FileReader(fileName));//        BufferedReader input = new BufferedReader(new FileReader(fileName));PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));String al="abcdefghijklmnopqrstuvwxyz";char[] ac=al.toCharArray();n=input.nextInt();a=new long[n+1];for(int i=1;i<=n;++i)a[i]=input.nextLong();long[] sum=new long[n+1];int[] len=new int[n+1];for(int i=1;i<=n;++i){sum[i]=sum[i-1]+a[i];for(int j=1;j<=i;++j){if(sum[i]<sum[i-j]+(long)j*j){len[i]=j;sum[i]=sum[i-j]+(long)j*j;}}}stp=new Vector<>();out.print(sum[n]+" ");int r=n;while(r>0){if(len[r]==0){r--;continue;}int l=r-len[r]+1;get(l,r);r=l-1;}out.println(stp.size());for(M now:stp){out.println(now.x+" "+now.y);}out.flush();out.close();}public static void main(String[] args) throws Exception{solve();}//	public static final void main(String[] args) throws Exception {
//		  new Thread(null, new Tx2(), "线程名字", 1 << 27).start();
//	}
//		@Override
//		public void run() {
//			try {
//				//原本main函数的内容
//				solve();
//
//			} catch (Exception e) {
//			}
//		}staticclass AReader{BufferedReader bf;StringTokenizer st;public AReader(){bf=new BufferedReader(new InputStreamReader(System.in));st=new StringTokenizer("");}public String nextLine() throws IOException{return bf.readLine();}public String next() throws IOException{while(!st.hasMoreTokens()){st=new StringTokenizer(bf.readLine());}return st.nextToken();}public char nextChar() throws IOException{//确定下一个token只有一个字符的时候再用return next().charAt(0);}public int nextInt() throws IOException{return Integer.parseInt(next());}public long nextLong() throws IOException{return Long.parseLong(next());}public double nextDouble() throws IOException{return Double.parseDouble(next());}public float nextFloat() throws IOException{return Float.parseFloat(next());}public byte nextByte() throws IOException{return Byte.parseByte(next());}public short nextShort() throws IOException{return Short.parseShort(next());}public BigInteger nextBigInteger() throws IOException{return new BigInteger(next());}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vol.45 这个壁纸网址,功能简单,每月37.7万访问量

哈咯&#xff0c;大家好&#xff0c;我是欧维&#xff0c;今天要给大家分享的网站是&#xff1a;极简壁纸&#xff0c;一个专门做电脑壁纸的网站&#xff1b; 它的网址是&#xff1a;极简壁纸_海量电脑桌面壁纸美图_4K超高清_最潮壁纸网站 网站的壁纸质量很高&#xff0c;页面…

Open CASCADE学习|BRepOffsetAPI_DraftAngle

BRepOffsetAPI_DraftAngle 是 Open CASCADE Technology (OCCT) 中用于创建带有草图斜面的几何体的类。草图斜面是一种在零件设计中常见的特征&#xff0c;它可以在零件的表面上创建一个倾斜的面&#xff0c;通常用于便于零件的脱模或是增加零件的强度。 本例演示了如何创建一个…

【系统分析师】数据库部分

文章目录 1、数据库模式2、数据库设计过程2.1ER模型 3、关系代数 ☆5、规范化理论☆5.1 非规范存在的问题5.2 相关概念5.3范式5.3.1 第一范式-1NF5.3.2 第二范式-2NF5.2.3 第三范式5.2.4 BC范式 5.4 函数依赖分解5.4.1保持函数依赖分解5.4.2 无损分解 5.5 Armstong公理系统 6、…

策略为王股票软件源代码\StkUI\View\RealTime.cpp------分时行情界面------程序代码基本都在里面

搜索 成交... C:\Users\Administrator\Desktop\源代码\策略为王股票软件源代码\StkUI\StkUI.rc(395): MENUITEM "以成交均价为准(&A)", ID_VIEW_MAINDATAAVERAGE C:\Users\Administrator\Desktop\源代码\策略为王股票软件源代码\StkUI\StkUI…

shardingsphere从4.1.1升级到5.2.1

作为工程师都希望自己的产品能够大卖&#xff0c;而项目开发中使用的技术不可能所有都是自己写的&#xff0c;使用到的开源组件例如shardingsphere这样好的组件&#xff0c;也会随着用户量的增加而需要升级&#xff0c;没必要非得像hutool那样非得自己写一边&#xff0c;当然hu…

MySQL基础入门上篇

MySQL基础 介绍 mysql -uroot -p -h127.0.0.1 -P3306项目设计 具备数据库一定的设计能力和操作数据的能力。 数据库设计DDL 定义 操作 显示所有数据库 show databases;创建数据库 create database db02;数据库名唯一&#xff0c;不能重复。 查询是否创建成功 加入一些…

JVM修炼之路【12】- GC调优 、性能调优

上一篇中 我们详细讲了内存溢出 内存泄漏 还有相关的案例。 这篇博客中我们主要了解一下GC调优。 有些新手可能会有一点 疑问—— 这两者不是一回事吗&#xff1f;&#xff1f; 其实说一回事 也没错 因为GC调优本质上还是针对 堆上的内存 只不过前面我们关注的侧重点在于 不合…

软件设计师——软件工程基础知识

软件工程基础知识 软件过程软件过程模型软件测试方法进度管理软件复杂性度量环路复杂度耦合聚合和组合 软件过程 软件过程模型 软件测试方法 黑盒测试和白盒测试 白盒测试中&#xff0c;语句覆盖对程序执行逻辑的覆盖很低&#xff0c;因此一般认为它是很弱的逻辑覆盖。 进度管…

【Django开发】0到1美多商城项目md教程第7篇:登录,1. 互联开发者申请步骤【附代码文档】

美多商城完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;欢迎来到美多商城&#xff01;&#xff0c;项目准备。展示用户注册页面&#xff0c;创建用户模块子应用。用户注册业务实现&#xff0c;用户注册前端逻辑。图形验证码&#xff0c;图形验证码接口设…

HarmonyOS实战开发-自定义分享

介绍 自定义分享主要是发送方将文本&#xff0c;链接&#xff0c;图片三种类型分享给三方应用,同时能够在三方应用中展示。本示例使用数据请求 实现网络资源的获取&#xff0c;使用屏幕截屏 实现屏幕的截取&#xff0c;使用文件管理 实现对文件&#xff0c;文件目录的管理&…

地球上的七大洲介绍

地球上的七大洲示意图&#xff1a; 1. 亚洲&#xff08;Asia&#xff09;&#xff1a;世界上最大的洲&#xff0c;面积约为44579000平方公里。亚洲地域辽阔&#xff0c;包括从北极圈到赤道的各种气候和地形。它拥有世界上最多的人口&#xff0c;也是世界上一些最古老文明的发源…

transformer上手(4) —— 模型与分词器

1 模型 除了像之前使用 AutoModel 根据 checkpoint 自动加载模型以外&#xff0c;我们也可以直接使用模型对应的 Model 类&#xff0c;例如 BERT 对应的就是 BertModel&#xff1a; from transformers import BertModel model BertModel.from_pretrained("bert-base-ca…

28、链表-两数相加

思路&#xff1a; 有几个方面需要考虑 双指针遍历&#xff0c;如果出现和大于10那么向前进1如果长度不一样那么长的部分直接落下并且考虑进1 的问题 代码如下&#xff1a; class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {if (l1null||l2null){…

【40分钟速成智能风控14】数据处理和特征工程

目录 智能模型数据处理 重复值处理 一致性检验 数据交叉验证 线上线下验证 有效性检验 业务经验 数据分析 特征工程和特征筛选 探索性数据分析 字符型特征 缺失率过高 类别过少 异常值处理 智能模型数据处理 重复值处理 保证数据的唯一性也是数据清洗过程中需要…

金融机构与金融市场监管

金融机构与金融市场监管 中国的金融监管机构银行业监管的必要性银行业监管的基本目标银行业监管的基本内容商业银行的设立审批制度银行业日常监督管理流动性要求资产质量监管合理的内部控制制度风险集中和风险暴漏的监管银行资本风险资本的计算资本充足率的计算 中国的金融监管…

Hadoop+Spark大数据技术(微课版)曾国荪、曹洁版思维导图第四次作业 (第4章 HBase分布式DB)

1.简述Hbase的特点及与传统关系数据库的区别 HBase与传统关系数据库的区别 &#xff08;1&#xff09;数据类型 关系数据库具有丰富的数据类型&#xff0c;如字符串型、数值型、日期型、二进制型等。HBase只有字符串数据类型&#xff0c;数据的实际类型都是交由用户自己编写程序…

【JSON2WEB】14 基于Amis的CRUD开发30分钟速成

【JSON2WEB】系列目录 【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSO…

【springCloud】版本学习

Spring Cloud介绍 官网地址&#xff1a;https://spring.io/projects/spring-cloud Spring Cloud 是一个基于 Spring Boot 的微服务架构解决方案&#xff0c;它提供了一系列工具和模式来帮助开发者构建分布式系统。Spring Cloud 的组件和模式包括配置管理、服务发现、断路器、…

1028: 特定字符序列的判断

解法&#xff1a; #include<iostream> #include<stack> using namespace std; int main() {stack<char> sk;char c;bool flag false;while (cin >> c) {if (c #) break;if (c ) {flag true;continue;}if (flag) {if (sk.top() c) {sk.pop();cont…

JavaScript知识点 --javaweb学习笔记

什么是Javascript? JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互JavaScript 和Java 是完全不同的语言&#xff0c;不论是概念还是设计。但是基础语法类似JavaScript在1995 年由 Brendan Eich 发明&#xff0c;并…