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

CodeTON Round 6 (Div 1 + Div 2, Rated, Prizes!)(A - E)

CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)(A - E)

CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

A. MEXanized Array(分类讨论)

可以发现当 n < k 或者 k > x + 1 的时候无法构成 , 其余的时候贪心的用 x 最大化贡献即可 , 注意特判 k == x 的情况。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n , k , x; signed main(){IOScin >> t;while(t --) {cin >> n >> k >> x;if(n < k || k > x + 1) {cout << "-1\n";} else {int res = 0;int now = k - 1;res += (now + 1) * now / 2;if(k == x) res += (x - 1) * (n - k);else res += x * (n - k);cout << res << "\n";}}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

B. Friendly Arrays(位运算)

观察或运算发现 , 只有当前位为 1 的时候或运算才能对结果产生影响 , 且是把所有数当前位全部变成 1 , 不妨对 n 的奇偶进行讨论 ,模拟完可以发现这样的一个性质 , 当 n 为奇数的时候操作异或和会变大 , 偶数的时候操作异或和会变小 , 所以最大最小值一定是全操作和全不操作的 , 计算即可。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int n , m , t;
int a[N] , b[N];signed main(){IOScin >> t;while(t --) {cin >> n >> m;int mx = 0 , mn = 0 , k = 0;for(int i = 1 ; i <= n ; i ++) cin >> a[i];for(int i = 1 ; i <= m ; i ++) cin >> b[i] , k |= b[i];for(int i = 1 ; i <= n ; i ++) {mn ^= (a[i] | k);mx ^= a[i];}if(mn > mx) swap(mn , mx);cout << mn << " " << mx << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

C. Colorful Table(思维 ,排序)

不难发现对于每个数来说 , 我们要找大于等于本身的最靠左的位置和最靠右的位置 , 考虑按照值的大小升序排序 , 这样问题就转化成找排序后每个值右边序号的最大值和最小值 , 逆序扫一遍 , 边扫便维护即可。

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n , k , ans[N];
struct node {int x , id;
}a[N];signed main(){IOScin >> t;while(t --) {cin >> n >> k;for(int i = 1 ; i <= n ; i ++) {cin >> a[i].x ;a[i].id = i;}sort(a + 1 , a + 1 + n ,[&](node a, node b){return a.x < b.x;});int mx = -9e18 , mn = 9e18;for(int i = n ; i >= 1 ; i --){int now = a[i].x;int id  = a[i].id;mx = max(mx , id);mn = min(mn , id);ans[now] = (mx - mn + 1) * 2;}for(int i = 1 ; i <= k ; i ++) {cout << ans[i] << " ";ans[i] = 0;}cout << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

D. Prefix Purchase(贪心)

首先不难想到,贪心的取次数最多且最靠右的位置 , 但这样显然不是最优的 , 因为有

3 4 5

11

这种情况 , 我们可以通过替换的方式更充分的利用余数 ,转化一下不难发现如何利用余数的问题和开始要求的问题是一样的(选 4 还是选 5去替换 3 就相当于 k = 2 时 , 选 1 还是 选 2 能让字典序变大) , 不断贪心的选把余数用完即可.

例如 :

3 4 5

11

第一次贪心之后会变成

0 1 2

2

第二次贪心之后会变成

0 0 1

0

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n , k;
int a[N] , pre[N] , b[N];signed main(){IOScin >> t;while(t --) {cin >> n;pre[0] = 0;for(int i = 1 ; i <= n ; i ++) cin >> a[i] , pre[i] = 0;cin >> k;int id = 0;while(k && id != -1) {int maxx = 0 , id1 = -1;for(int i = n ; i >= id + 1 ; i --) {if((k / a[i]) > maxx) {maxx = k / a[i];id1  = i;} }k -= maxx * a[id1];for(int i = n ; i >= id1 + 1 ; i --) {a[i] -= a[id1];}pre[id]    += maxx;pre[id1]   -= maxx;id = id1;}int sum = 0;for(int i = 1 ; i <= n ; i ++) {sum += pre[i - 1];cout << sum << " ";}cout << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

E. Another MEX Problem(dp)

先考虑 O(n^3) 的解决方法

d p [ i ] [ j ] 表示前 i 个数是否能表示出 j dp[i][j] 表示前 i 个数是否能表示出 j dp[i][j]表示前i个数是否能表示出j

考虑转移

若当前位不选进区间 dp[i][j] = dp[i - 1][j];

若当前位选进区间 , 枚举以当前位为右边界的区间 , 进行转移

dp[i][j] |= dp[l - 1][j ^ mex[l][i]]

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 5e3 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n ;signed main(){IOScin >> t;while(t --) {cin >> n;		vector<int>a(n + 1);for(int i = 1 ; i <= n ; i ++) {cin >> a[i];}vector<vector<int>>mex(n + 1 , vector<int>(n + 1));vector<vector<bool>>dp(n + 1 , vector<bool>(1 << 13));for(int i = 1 ; i <= n ; i ++) {int now = 0;vector<bool>vis(n + 1);for(int j = i ; j <= n ; j ++) {vis[a[j]] = 1;while(vis[now]) now += 1;mex[i][j] = now;	}}dp[0][0] = 1;for(int i = 1 ; i <= n ; i ++) {//从上一位自然转移dp[i] = dp[i - 1];	for(int l = 1 ; l <= i ; l ++) {for(int k = 0 ; k < (1 << 13) ; k ++) {if(dp[l - 1][k]) dp[i][k ^ mex[l][i]] = 1;}}}int res = 0;for(int i = 0 ; i < (1 << 13) ; i ++) {if(dp[n][i]) res = max(res , i);}cout << res << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

考虑优化:

1:首先对于相同的右边界 , 我们枚举左边界的时候从大到小 , 由于我们是先从大的范围开始枚举 , 所以每个 mex 只更新一次即可。

2.其次对于相同的左边界 , 每个 mex 更新一次即可 。

显然能凑出来的mex的数量级是O(n)的 , 更新次数也是O(n)的

总复杂度

O ( n 2 ) O(n^2) O(n2)

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
const int N = 5e3 + 10;
const int mod = 1e9 + 7;
typedef pair<int,int>PII;int t , n ;signed main(){IOScin >> t;while(t --) {cin >> n;vector<int>a(n + 1);for(int i = 1 ; i <= n ; i ++) {cin >> a[i];}vector<vector<int>>mex(n + 1 , vector<int>(n + 1));vector<vector<bool>>dp(n + 1 , vector<bool>(1 << 13));for(int i = 1 ; i <= n ; i ++) {int now = 0;vector<bool>vis(n + 1);for(int j = i ; j <= n ; j ++) {vis[a[j]] = 1;while(vis[now]) now += 1;mex[i][j] = now;	}}dp[0][0] = 1;vector<vector<bool>>visl(n + 1 , vector<bool>(1 << 13));vector<vector<bool>>visr(n + 1 , vector<bool>(1 << 13));for(int i = 1 ; i <= n ; i ++) {//从上一位自然转移dp[i] = dp[i - 1];for(int l = i ; l >= 1 ; l --) {if(visr[i][mex[l][i]]) continue;if(visl[l][mex[l][i]]) continue;visl[l][mex[l][i]] = 1;visr[i][mex[l][i]] = 1;for(int k = 0 ; k < (1 << 13) ; k ++) {if(dp[l - 1][k]) dp[i][k ^ mex[l][i]] = 1;}}}int res = 0;for(int i = 0 ; i < (1 << 13) ; i ++) {if(dp[n][i]) res = max(res , i);}cout << res << "\n";}return 0;
}
//freopen("文件名.in","r",stdin);
//freopen("文件名.out","w",stdout);

相关文章:

CodeTON Round 6 (Div 1 + Div 2, Rated, Prizes!)(A - E)

CodeTON Round 6 (Div. 1 Div. 2, Rated, Prizes!)(A - E) CodeTON Round 6 (Div. 1 Div. 2, Rated, Prizes!) A. MEXanized Array&#xff08;分类讨论&#xff09; 可以发现当 n < k 或者 k > x 1 的时候无法构成 &#xff0c; 其余的时候贪心的用 x 最大化贡献即…...

Spring 源码分析(五)——Spring三级缓存的作用分别是什么?

Spring 的三级缓存是经典面试题&#xff0c;也会看到一些文章讲三级缓存与循环依赖之的关系。那么&#xff0c;三级缓存分别存储的什么呢&#xff1f;他们的作用又分别是什么&#xff1f; 一、一、二级缓存 一级缓存是一个名为 singletonObjects 的 ConcurrentHashMap&#x…...

Django基于类视图实现增删改查

第一步&#xff1a;导入View from django.views import View 第二步&#xff1a;新建这个基类 class CLS_executer(View):db DB_executerdef get(self, request):executer_list list(self.db.objects.all().values())return HttpResponse(json.dumps(executer_list), conte…...

matplotlib绘图实现中文宋体的两种方法(亲测)

方法一&#xff1a;这种方法我没有测试。 第一步 找宋体字体 &#xff08;win11系统&#xff09; 2.matplotlib字体目录&#xff0c;如果不知道的话&#xff0c;可以通过以下代码查询&#xff1a; matplotlib.matplotlib_fname() 如果你是Anaconda3 安装的matplotlib&#x…...

非常有用的JavaScript高阶面试技巧!

&#x1f340;一、闭包 闭包是指函数中定义的函数&#xff0c;它可以访问外部函数的变量。闭包可以用来创建私有变量和方法&#xff0c;从而保护代码不受外界干扰。 // 例1 function outerFunction() {const privateVariable "私有变量";function innerFunction()…...

windows 安装Linux子系统 Ubuntu 并配置python3

环境说明&#xff1a; Windows 11 Ubuntu 20.04.6 安装步骤以及问题&#xff1a; 1、开启Windows Subsystem for Linux dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2、开启虚拟机特性 dism.exe /online /enabl…...

pytorch的pixel_shuffle转tflite文件

torch.pixel_shuffle()是pytorch里面上采样比较常用的方法&#xff0c;但是和tensoflow的depth_to_space不是完全一样的&#xff0c;虽然看起来功能很像&#xff0c;但是细微是有差异的 def tf_pixelshuffle(input, upscale_factor):temp []depth upscale_factor *upscale_f…...

sentinel-dashboard-1.8.0.jar开机自启动脚本

启动阿里巴巴的流控组件控制面板需要运行一个jar包&#xff0c;通常需要运行如下命令&#xff1a; java -server -Xms4G -Xmx4G -Dserver.port8080 -Dcsp.sentinel.dashboard.server127.0.0.1:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.0.jar &…...

c++堆排序-建堆-插入-删除-排序

本文以大根堆为例&#xff0c;用数组实现&#xff0c;它的nums[0]是数组最大值。 时间复杂度分析&#xff1a; 建堆o(n) 插入删除o(logn) 堆排序O(nlogn) 首先上代码 #include<bits/stdc.h>using namespace std; void down(vector<int>&nums, int idx, i…...

使用代理后pip install 出现ssl错误

window直接设置代理 httphttp://127.0.0.1:7890;httpshttp://127.0.0.1...

护眼灯什么价位的好?最具性价比的护眼台灯推荐

到了晚上光线比较弱&#xff0c;这时候就需要开灯&#xff0c;要是孩子需要近距离看字学习等等&#xff0c;给孩子选择的灯具要特别的重视。护眼灯就是目前颇受学生家长青睐的灯具之一&#xff0c;越来越多的人会购买一个护眼灯给自己的孩子让孩子能够在灯光下学习的时候&#…...

vue event bus 事件总线

vue event bus 事件总线 创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\08-事件总线-扩展 vue --version vue crea…...

深信服云桌面用户忘记密码后的处理

深信服云桌面用户忘记了密码&#xff0c;分两种情况&#xff0c;一个是忘记了登录深信服云桌面的密码&#xff0c;另外一个是忘记了进入操作系统的密码。 一、忘记了登录深信服云桌面的密码 登录虚拟桌面接入管理系统界面&#xff0c;在用户管理中选择用户后&#xff0c;点击后…...

Cocos Creator3.8 实战问题(一)cocos creator prefab 无法显示内容

问题描述&#xff1a; cocos creator prefab 无法显示内容&#xff0c; 或者只显示一部分内容。 creator编辑器中能看见&#xff1a; 预览时&#xff0c;看不见内容&#xff1a; **问题原因&#xff1a;** prefab node 所在的layer&#xff0c;默认是default。 解决方法&…...

朴素贝叶斯深度解码:从原理到深度学习应用

目录 一、简介贝叶斯定理的历史和重要性定义例子 朴素贝叶斯分类器的应用场景定义例子常见应用场景 二、贝叶斯定理基础条件概率定义例子 贝叶斯公式定义例子 三、朴素贝叶斯算法原理基本构成定义例子 分类过程定义例子 不同变体定义例子 四、朴素贝叶斯的种类高斯朴素贝叶斯&a…...

RUST 每日一省:闭包

Rust中的闭包是一种可以存入外层函数中变量或作为参数传递给其他函数的匿名函数。你可以在一个地方创建闭包&#xff0c;然后在不同的上下文环境中调用该闭包来完成运算。和一般的函数不同&#xff0c;闭包可以从定义它的作用域中捕获值。 语法 闭包由“||”和“{}”组合而成。…...

Ubuntu下文件的解压缩操作:常用zip和unzip

Ubuntu下文件的解\压缩 压缩一个文件夹为zip包&#xff0c;加参数-r&#xff1a; zip -r MyWeb.zip MyWeb需要排除目录里某个文件夹&#xff1f;例如我要去掉node_modules&#xff0c;以显著减小压缩包体积&#xff0c;此时该怎么做&#xff1f; zip -r MyWeb.zip ./MyWeb…...

Linux学习第22天:Linux中断驱动开发(一): 突如其来

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中断作为驱动开发中很重要的一个概念&#xff0c;在实际的项目实践中经常用到。本节的主要内容包括中断简介、硬件原理分析、驱动程序开发及运行测试。其中驱动程…...

IDEA 2019 Springboot 3.1.3 运行异常

项目场景&#xff1a; 在IDEA 2019 中集成Springboot 3.1.3 框架&#xff0c;运行异常。 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSch…...

【JAVA】飞机大战

代码和图片放在这个地址了&#xff1a; https://gitee.com/r77683962/fighting/tree/master 最新的代码运行&#xff0c;可以有两架飞机&#xff0c;分别通过WASD&#xff08;方向&#xff09;&#xff0c;F&#xff08;发子弹&#xff09;&#xff1b;上下左右&#xff08;控…...

Midjourney 生成油画技巧

基本 prompt oil painting, a cute corgi dog surrounded with colorful flowers技法 Pointillism 点描绘法 笔刷比较细&#xff0c;图像更精细 oil painting, a cute corgi dog surrounded with colorful flowers, pontillismImpasto 厚涂绘法 笔刷比较粗&#xff0c;图像…...

26559-2021 机械式停车设备 分类

声明 本文是学习GB-T 26559-2021 机械式停车设备 分类. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了机械式停车设备的分类及有关的型式、型号和适停汽车组别、尺寸及质量。 本文件适用于 GB/T 3730.1—2001定义的乘用车及商用…...

xxe攻击(XML外部实体)

1.定义 XML用于标记电子文件使其具有结构性的标记语言&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义&#xff08;可选&#xff09;、文档元素。 http://www.w3school.com.…...

大数据-hadoop

1.hadoop介绍 1.1 起源 1.2 版本 1.3生产环境版本选择 Hadoop三大发行版本:Apache、Cloudera、Hortonworks Apache版本最原始的版本 Cloudera在大型互联网企业中用的较多 Hortonworks文档较好 1.4架构 hadoop由三个模块组成 分布式存储HDFS 分布式计算MapReduce 资源调度引擎Y…...

容器启动报错

容器启动报错 docker: Error response from daemon: driver failed programming external connectivity on endpoint XXX 如下&#xff1a; 据百度&#xff1a; 在docker启动后在&#xff0c;再对防火墙firewalld进行操作&#xff0c;就会发生上述报错 详细原因&#xff1a…...

求生之路2服务器搭建插件安装及详细的游戏参数配置教程linux

求生之路2服务器搭建插件安装及详细的游戏参数配置教程linux 大家好我是艾西&#xff0c;在上一篇文章中我用windows系统给搭建演示了一遍怎么搭建自己的L4D2游戏。 那么也有不少小伙伴想知道linux系统的搭建方式以及在这个过程中有什么区别。 那么艾西今天就跟大家分享下用lin…...

IntelliJ IDEA 左侧Commit栏不见了

1.点击File->Settings->Version Control->Commit 2.勾选Use non-modal commit interface...

使用自功率谱、互功率谱估计滤波器幅频特性

这段时间终于对工程中的随机信号的一般处理方式有点头绪了&#xff0c;功率谱密度估计是十分重要的方式之一&#xff0c;仍需继续深入细化相关内容。 示例&#xff1a;使用自功率谱、互功率谱估计滤波器幅频特性&#xff0c;自己实现 & Matlab自带函数实现。 clc;clear;cl…...

51单片机光照强度检测自动路灯开关仿真( proteus仿真+程序+报告+讲解视频)

51单片机光照强度检测自动路灯开关仿真( proteus仿真程序报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0052 讲解视频 基于51单片机的光照检测自动路灯控制仿真设计( proteus仿…...

socat管理haproxy配置

文章目录 前言一、配置二、简单使用1. 先安装 socat2. 获取 haproxy 的监控数据 总结 前言 我们可以通过 socat 命令 实现对 haproxy 的管理&#xff0c;包括获取监控数据&#xff0c;对后端服务器实现启动停止&#xff0c;服务流量控制等等。 一、配置 要想 haproxy 支持通过…...

彩页设计网站/抖音关键词排名优化软件

redis的事务是以命令multi开始&#xff0c;然后执行若干redis读写命令&#xff0c;最后以exec命令结束执行。整个过程中&#xff0c;在还没有执行 exec 命令前的所有 redis 的业务读写命令都没有真正的执行&#xff0c;只是放在了一个队列中&#xff0c;等 exec 命令执行时&…...

买个网站域名要多少钱一年/全网自媒体平台

为什么80%的码农都做不了架构师&#xff1f;>>> 行为型模式&#xff1a;Strategy 策略模式 &#xff11;、算法与对象的耦合 对象可能经常需要使用多种不同的算法&#xff0c;但是如果变化频繁&#xff0c;会将类型变得脆弱... &#xff12;、动机&#xff08…...

西安网站设计报价/网站自然排名工具

目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 实验难度3实验复杂度3一、实验原理 我们在配置路由器ACL的时候都是一个需求一个ACL这样来配置&#xff0c;这种做法是比较严谨的&#xff0c;但是如果需求变得很多了呢&#xff1f;例如&#xff0c;下图…...

提供服务好的网站归档系统/百度网络优化推广公司

类似于文本框里面hint文字在初始化的时候显示或者隐藏的操作&#xff0c;就要用到setOnFocusChangeListener的 首先我觉得不是太必要&#xff5e; 毕竟当你输入东西时&#xff0c;默认文字自然会消失 当然如果你执意要这样做 你可以在onCreate方法中通过findViewById找到该Edi…...

河南省工程建设信息网官网入口/开封网站快速排名优化

地址&#xff1a;http://poj.org/problem?id2486 题意&#xff1a;有一颗苹果树&#xff0c;每个节点上面有很多苹果&#xff0c;从一个节点到另外一个可以到达的节点花费1步&#xff0c;求k步最多能吃到多少苹果。 mark&#xff1a;这是典型的回溯型树状dp。dp[i][j][0]代表以…...

网站建设与管理专业/贵阳做网络推广的公司

题目链接&#xff1a;https://vijos.org/p/1120 这怕是我打过最水的一道题了&#xff0c;但是这道隶属于普及组难度的题我竟然提交4次才过&#xff0c;这不禁让我有些后怕&#xff0c;所以还是含泪写下这篇博客&#xff0c;用来警示一下自己&#xff1b; 这题半天不A的原因还是…...