![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
wangqianqianya
这个作者很懒,什么都没留下…
展开
-
D. Dirty Deeds Done Dirt Cheap
D. Dirty Deeds Done Dirt Cheaptheme:给定n个二元组,所有元素各不相同,且在[1,2n]之间。先要你选出t个二元组,使得满足按a1 b1 a2 b2...at bt写开后满足a1>b1 <a2>b2 <...<at>bt或 a1<b1 >a2<b2 >...> at<bt求最大的...原创 2019-11-19 11:32:39 · 1251 阅读 · 0 评论 -
C. Vasya And Array
C. Vasya And Arraytheme:让你构造一个有n个元素的数组,m个约束条件:1 l r:要求[l,r]之间元素非递减 0 l r:要求[l,r]之间元素不是非递减solution:首先处理1的情况,要求区间非递减,则我们用一个数组Less[i]来标记a[i]是否要<=a[i+1]即满足非递减,这样对于每一个1 l r,将Less[l~r-1]都置为1。接着处理0的...原创 2019-11-17 22:48:10 · 240 阅读 · 0 评论 -
D2. Remove the Substring (hard version)
D2. Remove the Substring (hard version)theme:给定一个串s和它的某个子序列t,现除去s中的一段子串,使得t仍然为s的子序列,问最大能删除多长的子串。|t|<=|s|<=2e5solution:设t中字符分别为t0t1...tn,则最大值肯定在去除s中最右边满足能形成子序列t的t0之前字符、s中最左边满足能形成子序列t的tn之后的字符、...原创 2019-11-13 08:59:44 · 171 阅读 · 0 评论 -
D. AB-string
D. AB-stringtheme:给定一个长度为n的,仅由A、B组成的字符串s,定义一个串t是好的当且仅当t的每一个字符的至少属于一个t的长度>1的回文子串,问s有多少个好的子串?solution:可发现只有这两种情况的串不是好的即:ABBB、BBBA,即一个A/B +多个另一个字符。总的子串为n*(n-1)/2 (除去长度为1的)。对于AABBB,不满足条件的子串个数就是2+3...原创 2019-11-12 10:38:28 · 656 阅读 · 0 评论 -
D. Salary Changing
D. Salary Changingtheme:s元分给n个人,每个人可分的钱数为[li,ri],问分好后,这n个人中钱数中位数最大是多少?保证n为奇数,1≤n<2⋅10^5,1≤s≤2⋅10^14,∑(i=1~n) li≤s.solution:考虑二分。对于中位数为mid,我们只要check()是否有至少n/2+1个人的钱数可以分为>=mid个。采用贪心策略分,对于li&g...原创 2019-11-08 13:32:52 · 197 阅读 · 0 评论 -
Educational Codeforces Round 73 (Rated for Div. 2)
D. Make The Fence Great Againtheme:给定n个元素,每个元素有两个属性,高度ai与加高单位1的费用b[i],现要增加若干个元素的高度,使得任意相邻两元素的高度不同,每个元素可增高多次,问最少花费多少钱?1<=q<=3e5,1<=n<=3e5,sum(n)<=3e5,1<=ai<=bi<=1e9,答案<=1e1...原创 2019-10-29 20:29:00 · 122 阅读 · 0 评论 -
2018icpc焦作
D. Keiichi Tsuchiya the Drift Kingtheme:一辆车的长为b,宽为a,现经过一个内圆半径为r,弧度为d的弯角,车在直道贴着路内道行驶,在弯道始终沿着切线方向行驶。问道路宽度至少为多少才能保证车顺利通过?0<a,b,r<100 ,0<d<180。solution:两种情况。(1)若弧度比较大,车可以完全进入弯道,则考虑左上角刚好与...原创 2019-10-29 12:34:10 · 284 阅读 · 0 评论 -
Codeforces Round #596 (Div. 2)
D. Power Productstheme:给定n个数,从中选出两个数使得ai*aj=x^k,其中x是任整数,求不同取法。2<=n<=1e5,2<=k<=100,1<=ai<=1e5solution:两边开k次方,所以最终就是要找两个数,使得它们的乘积开k次方后为整数。考虑将a分解质因数,写成ai=p1^b1+p2^b2...的形式,并对每个p求出b%...原创 2019-10-28 19:34:57 · 201 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2)
C. The Football Seasontheme:给定n,p,w,d;求出一组x,y,z使得w*x+d*y=p,x+y+z=n,且x,y,z为自然数。1≤n≤10^12,0≤p≤10^17,1≤d<w≤10^5solution:首先可看出这题就是求整数解x,y使得w*x+d*y=p,且x+y<=n,一个方程解两个未知数,枚举。但n很大,p也大,注意到x最大只能取min(n...原创 2019-10-14 18:47:51 · 121 阅读 · 0 评论 -
牛客练习赛46
B、华华送奕奕小礼物theme:数组a,b元素个数分别为n,m,c[i][j]=a[i]*b[j],求c的子矩阵中矩阵和在[l,r]的个数。1<=n,m<=1000,1<=l,r<=1e18,1<=a[i],b[j]<=1e6solution:直接暴力算每个子矩阵和为1e6/2*1e6/2的时间复杂度,超时。显然我们要求的是满足区间,并不用知道每一个的值...原创 2019-10-03 20:43:04 · 120 阅读 · 0 评论 -
牛客练习赛52
B、Galahadtheme:给定一个长度为n的数组,m次询问,每次询问区间[l,r]的和,要求区间中相同的元素和只能算一次。1<=n,m,a[i]<=5e5solution:涉及到每个数出现的个数看起来是莫队模板题,但这题范围很大,o( sqrt(n))会超时,所以还是得用nlongn的算法,就联想到线段树。我们考虑求一个区间时,若出现重复值时只算最右边的一个,则按从左到右插...原创 2019-09-18 19:23:18 · 250 阅读 · 0 评论 -
牛客练习赛51
E、数列theme:给定n与m,要求你用正整数填充n个元素,使得这n个元素的和<=m,定义喜爱度为i的个数使得2<=i<=n且a[i]=a[i-1]+1。1<=n<=1e5,1<=m<=1e9solution:构造题。考虑枚举分成几个段i,若某段的长度为len,则该段的数为1~len,可知喜爱度应为n-i,所以我们的目标是使得n-i越大,也就是...原创 2019-09-13 20:22:21 · 107 阅读 · 0 评论 -
Educational Codeforces Round 72 (Rated for Div. 2)
C. The Number Of Good Substringstheme:给定一个01串,求子串sl~sr满足sl~sr组成的字符串转化为10进制后的值=r-l+1的个数。1<=|s|<=2e5solution:首先明确r-l+1最多为2e5,则说明如果字串的第一位为1,那么它最多20为左右就会超2e5,所以可以直接枚举1所在的位置作为第1为,然后只需向后最多枚举20为即可。...原创 2019-09-13 15:27:13 · 110 阅读 · 0 评论 -
2019ICPC徐州网络赛
B. so easy theme:n个数编号为1~n,两种操作:1 x:将编号为x的数置为不可得,2 x:询问x位置及其后第一个可得数的编号。1<=n,x<1e9,1<=q<1e6solution:首先想到用线段树维护。初始时线段树每个l==r位置的值为l,1 x操作对应将x位置值置为inf,2 x操作相当于查询区间[x,n]的最小值。由于n很大,所以要离散化。可...原创 2019-09-07 23:09:35 · 318 阅读 · 0 评论 -
Codeforces Round #561 (Div. 2)
E. The LCMs Must be Largetheme:有长度为n的数组a,A在接下来的m天每天从数组中取出s1个数,B取完该天没被A取走的数,问给定每天A所取数的编号,能否构造出数组a使得每天A所取所有数的最小公倍数>B的lcm? 1≤a,b,m≤10^14solution:判断A任意两天所取的元素集合都有交集则可以,否则不行。#include<bits/stdc...原创 2019-07-28 22:53:06 · 91 阅读 · 0 评论 -
Codeforces Round #545 (Div. 2)
B. Circustheme:给定n个人,2≤n≤5000且n为奇数。,每个人都有两个属性c与a,c[i]==0代表第i个人没有属性c,为1代表有,a同理。先要把这n个人均分为两组,要求第1组中有属性c的人数与第二组中有属性a的人数相同,输出一种分法中第一组的人的编号。solution:对于每个人的属性有四种情况:(1,1)、(1,0)、(0,1)、(0,0)。设每种情况的人数为a,b,c...原创 2019-07-19 22:45:37 · 110 阅读 · 0 评论 -
Codeforces Round #572 (Div. 2)
**E. Count Pairstheme:给定n个数,质数p,与k,问有多少对(ai,aj)满足i<j且 ? (2≤n≤3⋅10^5,2≤p≤10^9,0≤k≤p−1)solution:(ai-aj)*(ai+aj)*(ai^2+aj^2)%p=(ai-aj)*k%p化简得(ai^4-aj^4)%p=(ai-aj)*k%p,所以即(ai^4-k*ai)%p=(aj^4-k*aj...原创 2019-07-24 23:18:10 · 88 阅读 · 0 评论 -
2019西北工业大学程序设计创新实践基地春季选拔赛题解
A、*Chino with Geometrytheme:给定圆心坐标A与半径,给定两点c(x1,0)在y轴上,B(x2,y2);保证BC与圆A相割,如上图,求BD*BE的值。solution:简单的数学几何推理。(一时推不出可以先考虑特殊情况,如BC过A点,则BD*BE=(AB-r)*(AB+r))过A作BC垂线交于点F,设h=AF,连接AB,AD。#include&...原创 2019-04-08 22:14:56 · 370 阅读 · 0 评论 -
Codeforces Round #563 (Div. 2)
D. Ehab and the Expected XOR Problemtheme:给定n与x,要求构造一个数组,使得数组的任意子串的抑或和都不0且不为x,且每个元素的值都<2^n,求能构造出的最长数组。1≤n≤18,1≤x<2^18solution:要求所有子串的抑或和,所以我们考虑前缀抑或和,因为al^a(l+1)^...^ar=sum(r)^sum(l-1),所以我们可以...原创 2019-07-22 10:33:34 · 105 阅读 · 0 评论 -
Codeforces Round #569 (Div. 2)
D. Tolik and His Uncletheme:给定n*m的矩阵,从左上角(1,1)出发,每次可以根据非0向量(dx,dy)移动到矩阵(x+dx,y+dy)处,问能否到达矩阵的每个位置一次且每个方位向量都不同。输出每一步到达的位置。1≤n⋅m≤10^6solution:对于1*m的矩阵,可以选择从1->m->2->m-1、、、两边交替中间靠拢,可以看出这样每个方向...原创 2019-07-27 20:07:50 · 107 阅读 · 0 评论 -
2019 Multi-University Training Contest 6
hdu6639:Farawaytheme:给定n与m,n代表方程个数,给定n个方程的xi,yi,ki,ti,求满足一下式子的xe,ye数目。1<=n<=10,1<=m<=1e9,0≤xi,yi≤m,2≤ki≤5,0≤ti<kisolution:首先取绝对值,对xi,yi分别排序后有10*10个区域,每个确定的区域可以去掉绝对值(xi-xe+yi-ye)。...原创 2019-08-09 11:05:27 · 149 阅读 · 0 评论 -
Codeforces Round #581 (Div. 2)
C. Anna, Svyatoslav and Mapstheme:给你一个有向无权图,给出一条路径p经过的点(不一定为简单路径,即可以有重复点),要找出最短子序列v使得p是一次经过v中所有点的一条简单路径。2≤n≤100,2≤m≤10^6solution:首先用Floyd求出任意两点间的最短路径。然后贪心选点(尽可能使每个点不选就满足要求):首先第一个点一定要加在答案里,因为它是起点,之...原创 2019-08-25 21:24:30 · 118 阅读 · 0 评论 -
Codeforces Round #534 (Div. 2)
C. Grid gametheme:有一个4*4的网格,有两种积木,分别为2*1与1*2的,现按顺序给出s个积木,要你依次摆在棋盘上,要求不能重叠,若有一行或一列放满了,则可以消除该行或列(同时消除),输出每种积木放的位置。solution:直接枚举每个积木第一个可以放的位置放上然后再相应消去是不对的,会出现消去后剩下一些零星分布的点使得下一个积木无法放置。所以应该找到一种解决方案使得不会...原创 2019-09-02 19:18:17 · 72 阅读 · 0 评论 -
Codeforces Round #583
D. Treasure Islandtheme:给定n*m的矩阵,#表示障碍物,.表示能通过,问最少要将几个.变为#使得无法从(1,1)走到(n,m),注意不能转变(1,1)与(n,m)'3≤n⋅m≤1000000solution:开始想的是要将从(1,1)到(n,m)路径上的关键点堵住,就变成了求最小割了,但直接网络流节点数边数太多,所以应先跑两边bfs,将既能从(1,1)到达、又...原创 2019-09-06 11:03:12 · 158 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2)
B. Dima and a Bad XORtheme:给定n*m的矩阵,问能否从每行中选出一个数求出这n个数的抑或和>0,输出。1≤n,m≤500solution:抑或和只会>=0,只有两个数相同时才会抑或为0,所以我们可以就先取每行第一个数进行抑或,若抑或和不为0,则直接输出,否则说明任n-1个数抑或后与剩下那个数相同,我们可以遍历每一行,只要找到一个数与该行第一个元素不同,...原创 2019-07-19 23:00:47 · 219 阅读 · 0 评论