水题杂做(

前言

平时闲的无聊写的或者口嗨的水题就不水博客了。


CF1545A AquaMoon and Strange Sort

题意

给出nnn个数字的一个序列,每次可以交换相邻的两个数字,求是否能够将序列从小到大排序且每个数字被交换次数为偶数。
n≤105n\leq 10^5n105

解题思路

其实就是每个数字的奇偶位置不能变,按照奇偶位置排序然后判断是否有序即可


[USACO15OPEN]Palindromic Paths G

题意

n∗nn*nnn的字母矩阵,求有多少条从(1,1)(1,1)(1,1)出发只向右和下走的路径满足经过的路径是一个回文串。
n≤500n\leq 500n500

解题思路

两头同时出发,设fi,j,kf_{i,j,k}fi,j,k表示走了iii步,两头的横坐标分别是j,kj,kj,k,这样可以压掉一维状态了,然后滚动卡长


P4873 [USACO14DEC]Cow Jog G

题意

nnn头牛,每头牛从pip_ipi出发,速度为viv_ivi,跑TTT秒。
求最少多少个赛道可以使所有牛之间没有冲突。
1≤n≤1051\leq n\leq 10^51n105

解题思路

两头牛有冲突当且仅当aaa的起始位置小于等于bbb,而aaa的终止位置大于等于bbb。因为起始位置单调,所以算出终止位置然后求最长不升子序列即可。


P3535 [POI2012]TOU-Tour de Byteotia

题意

给出nnn个点mmm条边的一张无向图,求至少删掉多少条边才能让编号不超过kkk的点都不在任何一个环上。

解题思路

考虑一下如果一个点在环上,显然删掉关键点连着的边不会亏,所以肯定存在一种方案只删去连接关键点的边。
所以我们可以优先连接所有的非关键点的边,然后剩下的跑一个类似最小生成树的就好了。


P5505 [JSOI2011]分特产

题意

nnn个人,mmm种特产。第iii种特产有aia_iai个 ,要求每个人都分到一个特产,求方案数。

1≤n,m,ai≤10001\leq n,m,a_i\leq 10001n,m,ai1000

解题思路

考虑二项式反演,这样就可以去掉每个人都分到的条件了。


CF1555D Say No to Palindromes

题意

给出一个串,每次询问一个区间表示将这个区间子串提出来之后至少要修改多少个字符才能使得没有长度大于111的回文串。字符集为{a,b,c}\{a,b,c\}{a,b,c}
1≤n,m≤2×1051\leq n,m\leq 2\times 10^51n,m2×105

解题思路

显然只需要考虑长度为2,32,32,3的回文串,也就是每个字符不能和它距离不超过222的位置相等。又因为字符集大小为333所以肯定是按照某个abcabcabc的排列循环下去的,枚举这个排列即可。


Loj#6467- ‘Zip’ Quine

比较奇怪的题目所以放这里了

题意

一种包含两个语句的语言

  • print x:代码后xxx行不编译而是直接输出
  • repeat x y:一直输出输出过的倒数第yyyxxx次(可以输出自己输出的)

要求写一个能输出自己本身的代码

解题思路

核心肯定是repeat语句,我们考虑用repeat语句输出它本身,然后因为因为第一个repeat会多输出些东西所以前面补一些print 1,因为两个print 1会输出一个print 1最后代码就是

print 1
print 1
print 1
print 1
print 1
print 1
repeat 3 2
print 2
repeat 3 2
print 2
repeat 3 2

【LGR-089】洛谷 8 月月赛 II T2

题目大意

给出一个长度为nnn0/10/10/1字符串SSS,然后求一个长度为mmm个字符串TTT满足

  1. TTT中不包含子串SSS
  2. TTT中包含子序列SSS

1≤n≤m,1≤∑m≤2×1061\leq n\leq m,1\leq \sum m\leq 2\times 10^61nm,1m2×106

解题思路

考虑暴力插一个字符进去,好像插在哪都会被卡就随机一下位置和插啥,然后用字符串hashhashhash判就好了。


CF1304C Air Conditioner

题目大意

开始空调温度为mmmnnn个顾客来的时间不同和适应温度不同。

每个时刻可以使得空调温度变化一度。

求能否满足所有顾客的需求。

1≤n≤100,1≤ti,li,ri,m≤1091\leq n\leq 100,1\leq t_i,l_i,r_i,m\leq 10^91n100,1ti,li,ri,m109

解题思路

每次考虑能够调整到的的区间就好了。


CF1463B Find The Array

题目大意

给出一个长度为nnn的序列aaa,要求一个序列bbb满足

  1. ∣a∣=∣b∣|a|=|b|a=b
  2. ∀i∈[1,n−1],bi∣bi+1orbi+1∣bi\forall i\in[1,n-1],b_i|b_{i+1}\ or\ b_{i+1}|b_ii[1,n1],bibi+1 or bi+1bi
  3. 2(∑i=1n∣ai−bi∣)≤∑i=1nai2\left(\sum_{i=1}^n|a_i-b_i|\right)\leq \sum_{i=1}^na_i2(i=1naibi)i=1nai

1≤n≤50,1≤T≤10001\leq n\leq 50,1\leq T\leq 10001n50,1T1000

解题思路

考虑一下如果差小于aia_iai和的一半就好了,我们把aaa按照位置奇偶分组,然后看下奇数大还是偶数大,大的bi=aib_i=a_ibi=ai,否则bi=1b_i=1bi=1

显然这样一定是合法的。


CF891A Pride

题目大意

给出一个长度为nnn的序列aaa,你每次可以让一个数gcdgcdgcd上一个相邻的数,求最小的步骤使所有数都变成111

1≤n≤2000,1≤ai≤1091\leq n\leq 2000,1\leq a_i\leq 10^91n2000,1ai109

解题思路

找到一个最小的gcdgcdgcd111的区间,然后造出一个111,之后直接拿111改变周围即可。

时间复杂度:O(n2)O(n^2)O(n2)


AT2387 [AGC016C] +/- Rectangle

题目大意

求一个W×HW\times HW×H的矩阵满足元素和为正数,且任意一个w×hw\times hw×h的矩阵和为负数。

1≤w≤W≤500,1≤h≤H≤5001\leq w\leq W\leq 500,1\leq h\leq H\leq 5001wW500,1hH500

解题思路

如果对一行/列有构造方法那么显然合法,考虑一行的话当且仅当N%n≠0N\% n\neq 0N%n=0的时候有解(就是每nnn个填一个−(n−1)inf−1-(n-1)inf-1(n1)inf1,然后其他位置填infinfinf

如果对于行列都无解那么一定无解,因为此时W%w=0,H%h=0W\%w=0,H\%h=0W%w=0,H%h=0,也就是用上述的方法在二维的情况下也无法让加上一些权值。


AT2266 [AGC008D] K-th K

题目大意

给出长度为nnn的序列www,构造一个长度n×nn\times nn×n的序列满足

  1. 1∼n1\sim n1n各出现nnn次。
  2. iiiiii的位置是wiw_iwi

1≤n≤5001\leq n\leq 5001n500

解题思路

首先iii的前i−1i-1i1个肯定优先填,我们按照wiw_iwi从小到大填,然后填到对应位置之后后面的也可以填了,丢进队列里维护一下就好了。


AT2148-[ARC063C]木と整数/Integers on a Tree

题目大意

给出nnn个点的一棵树,一些点上有数字,然后你要在其他节点上填数字使得每条边连接的两点数字差绝对值为111

1≤n≤1051\leq n\leq 10^51n105

解题思路

用带数字的点分割出若干个联通块,每个联通块dfsdfsdfs搜出每个点的数字范围就好了。

至于奇偶性我懒得判,最后直接判得出的那个解是否合法就好了(((


CF1592D Hemose in ICPC ?

题目大意

给出nnn个点的一棵树,树上的权值不告诉你,Dist(x,y)Dist(x,y)Dist(x,y)表示xxxyyy路径上的最大值,你每次可以询问一个点集中最大的Dist(x,y)Dist(x,y)Dist(x,y)是多少,求一个x,yx,yx,y使得它的Dist(x,y)Dist(x,y)Dist(x,y)是全图最大的。

1≤n≤10001\leq n\leq 10001n1000,询问次数不超过121212

解题思路

随便找个点当根,那么所有边肯定被某条根到叶子的路径包括,然后再叶子上二分就好了。


AGC052A Long Common Subsequence

题目大意

给出三个长度为2n2n2n010101串,保证每个恰好有nnn000nnn111

求一个长度为2n+12n+12n+1的串使得它是所有其他串的两倍(自己接在自己后面形成的字符串)的子序列。

1≤∑n≤1051\leq \sum n\leq 10^51n105

解题思路

花里胡哨的,两个部分肯定都是各有nnn000nnn111,一个朴素的想法是nnn000+nnn111肯定是满足条件的。

考虑少了的那个怎么补充,考虑接一个000,因为是自己接在自己后面,如果最后一个字符是000那么显然满足条件,如果最后有kkk111那么在1∼2n−k1\sim 2n-k12nk这一部分就已经匹配完了前面的nnn000,而后面又可以在到自己的复制之前匹配到kkk111,而在这kkk个一之前肯定是一个000来作为最后一个匹配。


AGC045A Xor Battle

题目大意

有两个人,和一个数字开始时为000,第iii回合有由sis_isi号人操作,可以选择是否让数字异或上aia_iai000号人要把数字变为000111号人反之。

求哪个人获胜。

1≤T≤100,1≤n≤200,1≤ai≤10181\leq T\leq 100,1\leq n\leq 200,1\leq a_i\leq 10^{18}1T100,1n200,1ai1018

解题思路

对于一号人的每个操作,零号人都可以通过调整后面它的操作的状态来抵消掉这个操作。具体地如果零号后面的操作数字能够异或出这个数字那这个数字就没有用。

所以换到具体做法就是从后往前扫,每次遇到000号操作就加入线性基,不然就判断能不能被异或出来就好了。

时间复杂度:O(Tnlog⁡L)O(Tn\log L)O(TnlogL)


CF449D Jzzhu and Numbers

题目大意

给出一个长度为nnn的序列aaa,求有多少个子序列的按位和(位运算)为000

1≤n,ai≤1061\leq n,a_i\leq 10^61n,ai106

解题思路

考虑容斥假设和之后至少有iii位有111那么容斥系数就是(−1)i(-1)^i(1)i,那么高维前缀和处理出数组fif_ifi表示包含iii的数字个数,然后用答案就是∑i∈S2fi×(−1)∣S∣\sum_{i\in S} 2^{f_i}\times (-1)^{|S|}iS2fi×(1)S

时间复杂度:O(nlog⁡n)O(n\log n)O(nlogn)


ARC132A Permutation Grid

题目大意

给出nnn的两个排列RRRCCC
定义一个n×nn\times nn×n的黑白网格,满足第iii行恰好有RiR_iRi个黑格子,第iii列恰好有CiC_iCi个黑格子。
qqq次询问给出(x,y)(x,y)(x,y)求位置(x,y)(x,y)(x,y)的格子颜色。

1≤n,q≤1051\leq n,q\leq 10^51n,q105

解题思路

先考虑极端的情况,Ri=1R_i=1Ri=1Cj=nC_j=nCj=n的情况那么第iii列肯定只有(i,j)(i,j)(i,j)是黑色的,然后再考虑Ri′=2R_{i'}=2Ri=2Cj′=n−1C_{j'}=n-1Cj=n1(i′,j)(i',j)(i,j)肯定也是黑色的,然后又因为(i,j′)(i,j')(i,j)是白色的,那么(i′,j′)(i',j')(i,j)肯定也是黑色的。

那么方法就已经很明显了,如果Ri+Cj>nR_i+C_j>nRi+Cj>n那么就是黑色,否则就是白色就好了。


AGC012B Splatter Painting

题目大意

nnn个点mmm条边的一张图,qqq次操作将距离xxx不超过ddd的点都染成颜色ccc,求最后每个点的颜色。

1≤n,m,q,x,c≤105,1≤d≤101\leq n,m,q,x,c\leq 10^5,1\leq d\leq 101n,m,q,x,c105,1d10

解题思路

fx,if_{x,i}fx,i表示距离第xxx个点不超过iii距离都得被染色的最后那次操作,然后暴力转移就好了。


AGC013C Ants on a Circle

题目大意

nnn只蚂蚁在长度为LLL的环上爬,速度都是111,撞到对方就转头,求TTT秒后每只蚂蚁的位置。

1≤n≤105,1≤L,T≤1091\leq n\leq 10^5,1\leq L,T\leq 10^91n105,1L,T109

解题思路

一个很经典的做法是我们不需要管转头,因为如果每只蚂蚁都一样转头相当于没转。

然后考虑之后怎么定位每只蚂蚁,发现如果没有蚂蚁经过环的话蚂蚁之间的排名是不会变的。

但是如果有蚂蚁经过环,那么其实无论是哪只蚂蚁都会让所有蚂蚁的排名根据经过环的方向转动。

之接求每只蚂蚁经过环的次数即可。


CF1672D

题目大意

你有一个长度为nnn的数字串aaa和它的排列bbb,你每次可以选择一对(i,j)(i,j)(i,j)满足ai=aj(i<j)a_i=a_j(i<j)ai=aj(i<j),将[i,j][i,j][i,j]这个区间顺时针旋转。
求能否将其变为bbb
1≤ai≤n≤2×1051\leq a_i\leq n\leq 2\times 10^51ain2×105

解题思路

考虑反过来做,那么就是如果有一个bi=bi+1b_i=b_{i+1}bi=bi+1,你就可以将bib_ibi丢到前面去往前插,那么我们用一个桶存下所有可以随意移动的bib_ibi,然后如果不能移动就一直匹配aia_iai直到不能移动的bib_ibi被匹配。

时间复杂度:O(n)O(n)O(n)

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

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

相关文章

2021“MINIEYE杯”中国大学生算法设计超级联赛(4)Display Substring(后缀数组+二分)

Display Substring #include<bits/stdc.h> using namespace std; typedef long long ll; // sa[i]: 排名是i位的是第几个后缀 // rk[i]: 第i个后缀的排名是多少 // height[i]: sa[i]与sa[i-1] const int N100010; char s[N]; int rk[N],sa[N],cnt[N],height[N]; int x[N]…

线性筛素数的实现与证明

情境 大家应该都知道用nlogn的时间复杂度筛出[1,n]的所有素数&#xff0c;但是当n的范围较大时&#xff0c;这个方法就不奏效了 今天我们谈谈素数的线性筛法&#xff0c;也就是用On的时间复杂度筛出[1,n]的所有素数 解析 nlog的算法之所以会慢&#xff0c;是因为它进行了很多…

牛客题霸 [在转动过的有序数组中寻找目标值] C++题解/答案

牛客题霸 [在转动过的有序数组中寻找目标值] C题解/答案 题目描述 给出一个转动过的有序数组&#xff0c;你事先不知道该数组转动了多少 (例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2). 在数组中搜索给出的目标值&#xff0c;如果能在数组中找到&#xff0c;返回它的索引&#…

领域驱动设计,让程序员心中有码(二)

引子&#xff0c;软件工程没有银弹上一篇博文领域驱动设计&#xff0c;让程序员心中有码&#xff0c;抛出了一个问题&#xff0c;领域驱动设计真的是万能的良方吗&#xff1f;对于这个问题&#xff0c;大家的答案无疑是一致的&#xff0c;作为一种非常受软件行业欢迎的软件思想…

bzoj#2407-探险【最短路,二进制分组】

正题 题目链接:https://darkbzoj.tk/problem/2407 题目大意 nnn个点的一张无向图&#xff08;但是正反权值不同&#xff09;&#xff0c;求一个从111出发回到111且不经过重复边的最短路径。 1≤n≤10000,1≤m≤21051\leq n\leq 10000,1\leq m\leq 2\times 10^51≤n≤10000,1≤…

The 2020 ICPC Asia Macau Regional Contest A. Accelerator(分治+NTT)

A. Accelerator 实质上就是求n个多项式相乘 (a1x)(a2x)…(anx)(a_1x)(a_2x)\dots(a_nx) (a1​x)(a2​x)…(an​x) 对于[xm][x^m][xm]的系数即是从nnn个选出n−mn-mn−m的乘积之和。 每次从nnn个选出n−mn-mn−m的概率显然为 (nm)n!\frac{\binom{n}{m}}{n!} n!(mn​)​ 然后期…

牛客题霸 [栈和排序] C++题解/答案

牛客题霸 [栈和排序] C题解/答案 题目描述 给你一个1->n的排列和一个栈&#xff0c;入栈顺序给定 你要在不打乱入栈顺序的情况下&#xff0c;对数组进行从大到小排序 当无法完全排序时&#xff0c;请输出字典序最大的出栈序列 题解&#xff1a; 栈的性质是先进后出 当栈…

邮局-[IOI2000](四边形不等式)

概要 四边形不等式的核心在于缩小最优转移的范围 题目描述 传送门 解析 这道题说是不等式&#xff0c;但其实也可以感性理解 &#xff08;其实就是不想证明&#xff09; 定义pl[i][k]: i到n的村庄建造k座邮局时&#xff0c;第一座管辖的范围是i-pl[i][k] (也就是最优决策…

.NET Core实战项目之CMS 第九章 设计篇-白话架构设计

前面两篇文章给大家介绍了我们实战的CMS系统的数据库设计&#xff0c;源码也已经上传到服务器上了。今天我们就好聊聊架构设计&#xff0c;在开始之前先给大家分享一下这几天我一直在听的《从零开始学架构》里面关于架构设计的定义以及架构设计的三大原则&#xff0c;希望能对大…

P6847-[CEOI2019]Magic Tree【dp,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P6847 题目大意 nnn个点的一棵树上&#xff0c;每个时刻可以割掉一些边&#xff0c;一些节点上有果实表示如果在did_idi​时刻这个点恰好不与111联通&#xff0c;那么就可以获得wiw_iwi​的价值。 1≤n,k≤1051\leq n,k\leq 1…

P3899 [湖南集训]更为厉害(线段树合并、长链剖分、二维数点)

P3899 [湖南集训]更为厉害 若 deepb<deepa\text{deep}_b<\text{deep}_adeepb​<deepa​&#xff1a;c 在点 a 的子树中&#xff0c;根据乘法原理计算答案为 min⁡(deepa,k)∗(sza−1)\min(\text{deep}_a,k)∗(\text{sz}_a−1)min(deepa​,k)∗(sza​−1)若 deepb>…

树链剖分-学习报告

概要 &#xff08;这是笔者刚学完趁热写的博客 由于也是初学&#xff0c;所以可能会对初学读者比较友好吧 毕竟你不明白的地方我可能也迷惑过&#xff09; 学完感觉树链剖分的设计真的很巧妙 其主要用途是压缩树上路径 又是一个n到log的优化 原理 先引定义&#xff1a; 设…

牛客题霸 [拼接所有的字符串产生字典序最小的字符串] C++题解/答案

牛客题霸 [拼接所有的字符串产生字典序最小的字符串] C题解/答案 题目描述 给定一个字符串的数组strs&#xff0c;请找到一种拼接顺序&#xff0c;使得所有的字符串拼接起来组成的字符串是所有可能性中字典序最小的&#xff0c;并返回这个字符串。 题解&#xff1a; 用sort…

今日头条Marketing API小工具(.Net Core版本)

前言由于工作原因&#xff0c;需要用到今日头条的Marketing API做一些广告投放的定制化开发。然后看现在网上也没多少关于头条Marketing API的文章&#xff0c;于是便就有了该篇文章。头条Marketing API主页地址&#xff1a;https://ad.toutiao.com/openapi/index.html。头条Ma…

P6880-[JOI 2020 Final]オリンピックバス【最短路】

正题 题目链接:https://www.luogu.com.cn/problem/P6880 题目大意 给出nnn个点mmm条边的有向图&#xff0c;边有边权和一个翻转权值。 翻转至多一条边使得1−>n−>11->n->11−>n−>1往返的权值加上翻转权值最小。 1≤n≤200,1≤m≤51041\leq n\leq 200,1\…

The 2020 ICPC Asia Macau Regional Contest J. Jewel Grab(数颜色+链表)

J. Jewel Grab Tartarus _Wallace_ 转化询问&#xff1a;对于一个询问 [s,k]&#xff0c;找到一个最长的区间 [s,t]&#xff0c;满足区间中出现次数超过一次的元素&#xff0c;的出现次数减一&#xff0c;的和&#xff0c;不超过 k。 对于该区间[s,t] 区间数颜色&#xff1a;…

牛客题霸 [最大数] C++题解/答案

牛客题霸 [最大数] C题解/答案 题目描述 给定一个数组由一些非负整数组成&#xff0c;现需要将他们进行排列并拼接&#xff0c;使得最后的结果最大&#xff0c;返回值需要是string类型 否则可能会溢出 题解&#xff1a; 将字符串存入vector中然后sort排序&#xff0c;最后将…

模板:割点、桥与双连通

文章目录割点代码桥点双连通分量代码边双连通分量代码割点 和强连通分量十分相似 分为树枝边、前向边和后向边 注意&#xff01; if(x!r&&low[to]>dfn[x]) cut[x]1;这句判断只能在树枝边出现 否则会因为前向边的存在而出错 代码 #include<bits/stdc.h> us…

.NET Core实战项目之CMS 第十章 设计篇-系统开发框架设计

这两天比较忙&#xff0c;周末也在加班&#xff0c;所以更新的就慢了一点&#xff0c;不过没关系&#xff0c;今天我们就进行千呼万唤的系统开发框架的设计。不知道上篇关于架构设计的文章大家有没有阅读&#xff0c;如果阅读后相信一定对架构设计有了更近一部的理解&#xff0…

喝酒、工作与自律

喝酒 自从开始打算品酒之后&#xff0c;家里的小酒数量不断增加&#xff0c;每天晚上喝个15ml&#xff0c;慢慢也能喝出一些区别了。 酱香、清香、浓香的区别还是挺明显的&#xff0c;闻香就能区别出来 浓香里的五粮液特点很明显&#xff0c;闻的时候有粮香&#xff0c;入口后…