思维
文章平均质量分 82
蜗角虚名羊
这个作者很懒,什么都没留下…
展开
-
2023牛客多校第一场B Anticomplementary Triangle
固定后,面积关于坐标k的函数一定是单峰函数,①:有结论:面积最大的三角形即为所求。之外,一定能取得更大的面积。证明:若有点在面积最大的三角形对应。可以当双指针做,复杂度少一个。双指针跳转,这个结论可得到。假如依然按双指针做,固定。的结合体做双指针,复杂度。时间内找到这个三角形。原创 2023-07-17 21:43:56 · 227 阅读 · 0 评论 -
The Locker Puzzle(百囚徒问题)
The Locker Puzzle(百囚徒问题)原创 2023-01-15 22:21:34 · 330 阅读 · 0 评论 -
bzoj4401: 块的计数
题目题解Code#include<bits/stdc++.h>using namespace std;const int N=1000002;struct node{ int to,ne;}e[N<<1];int sz[N],x,y,tot,h[N],num[N],n,i,cnt,ans,j;inline char gc(){ static char ...转载 2019-02-26 14:41:52 · 150 阅读 · 0 评论 -
Codeforces 806D. Perishable Roads
题目题解1题解2转载 2019-03-01 15:54:43 · 215 阅读 · 0 评论 -
bzoj5463: [APIO2018] 铁人两项(圆方树)
题目题解最后树的形态我描述一下,我刚开始就是因为想象中树的形态是错的才理解了好久每个方点下面连着一堆圆点,两棵树之间的公共点为这两个点双的割点再补充一下题解中的(3),uuu到vvv的路径上的点双是包括uuu和vvv的#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;typedef long long ll;const int N=1...原创 2019-02-19 09:52:12 · 156 阅读 · 0 评论 -
绍兴一中模拟赛2.18——切蛋糕
DescriptionSolution令n=h+wn=h+wn=h+w1.O(n2)1.O(n^2)1.O(n2)枚举行数iii和列数jjj,PhiP_h^iPhi代表hhh行里选了iii行的排列(与顺序无关,所以是排列)PwjP_w^jPwj同理但是两个排列只枚举了行与行和列与列之间的先后顺序,还不知道整个的先后顺序,那么再乘上一个Ci+jiC_{i+j}^iCi+ji就得...原创 2019-02-18 21:33:19 · 299 阅读 · 0 评论 -
bzoj4010: [HNOI2015]菜肴制作
题目Solution讲课的PPT里的图Code#include<bits/stdc++.h>using namespace std;const int N=100002;struct node{ int to,ne;}e[N];int T,i,d[N],x,y,ans[N],n,m,tot,h[N],cnt;priority_queue<int>q;...原创 2019-02-17 13:53:35 · 216 阅读 · 0 评论 -
loj#6433. 「PKUSC2018」最大前缀和
题目Solutionsumssum_ssums表示sss状态的所有数对应的和设fsf_sfs表示状态为sss的最大前缀和的方案数part1fs∣(1&lt;&lt;i)+=fs(sums&gt;0)f_{s|(1&lt;&lt;i)}+=f_s(sum_s&gt;0)fs∣(1<<i)+=fs(sums>0)考...原创 2019-01-20 21:29:54 · 330 阅读 · 0 评论 -
Codeforces 802H. Fake News (medium)
题目题意:构造两个字符串sss,ppp,使ppp在sss中作为子序列的出现次数恰好等于nnn。其中n≤1000000n≤1000000n≤1000000;sss,ppp的长度不能超过200200200。在构造过程中保证使s=pus=pus=puxxx为新字符k→2k+1k→2k+1k→2k+1 : 令s′=pxuxx,p′=pxs′=pxuxx,p′=pxs′=pxuxx,p′=px(s...原创 2019-01-09 15:09:47 · 266 阅读 · 0 评论 -
bzoj4299: Codechef FRBSUM
题目题解转载 2019-02-26 20:21:22 · 157 阅读 · 0 评论 -
AtCoder Grand Contest 016 B - Colorful Hats
题目Solution这题做着挺顺,我就按我的心路历程讲下去好了先请大家搞清楚颜色数和颜色的个数,不然看下去会觉得我讲得很奇怪假设mx=max{ai},mn=min{ai}mx=max\lbrace a_i\rbrace,mn=min\lbrace a_i\rbracemx=max{ai},mn=min{ai}首先,能发现mxmxmx与mnmnmn最多相差111我脑子中首先想到的就是...原创 2019-03-04 10:43:19 · 204 阅读 · 0 评论 -
bzoj5329: [Sdoi2018]战略游戏
题目题解Solution问题可转化成求点集之间两两的路径并Code#include<bits/stdc++.h>using namespace std;const int N=300002,M=100002;struct node{ int to,ne;}e[N<<1],E[M<<2];int fa[N][20],dep[N],TOT,to...转载 2019-03-11 11:42:18 · 194 阅读 · 0 评论 -
bzoj2028: [SHOI2009]会场预约
题目Solution假设当前输入的区间为[l,r][l,r][l,r],那么当区间[x,y][x,y][x,y]满足l≤y,x≤rl≤y,x≤rl≤y,x≤r时,两区间相交我一直在想怎么同时维护左右端点,后来才发现,直接以右端点为关键字,把所有区间放进setsetset里从小到大枚举≥l≥l≥l的yyy,如果yyy对应的x≤rx≤rx≤r,那么直接删掉否则,l≤r<x≤yl...原创 2019-03-20 18:33:12 · 159 阅读 · 0 评论 -
绍兴一中模拟赛3.21——孰是孰非
Description有一个长为n(n≤500)n(n≤500)n(n≤500)的序列,每次可以选一段区间加上xxx,如果有数大于777就减777(保持所有数∈[1,7]∈[1,7]∈[1,7])问:最少几次这样的操作才能使所有aia_iai都等于777Solutionstep1:step1:step1:先差分一下,令bi=ai−ai−1(1≤i≤n+1,a0=an+1=0)b_i=a_...原创 2019-03-21 14:15:18 · 169 阅读 · 0 评论 -
2019年绍兴文理学院元培学院ACM试题总结
文章目录1.[岁月神偷](http://acm.usx.edu.cn/aspnet/Question.aspx?qid=1649)2.[字母移动游戏](http://acm.usx.edu.cn/aspnet/Question.aspx?qid=1653)3.[黑孔雀和小太阳](http://acm.usx.edu.cn/aspnet/Question.aspx?qid=1655)4.[埃及分数]...原创 2019-03-17 23:31:13 · 1478 阅读 · 0 评论 -
绍兴一中模拟赛3.19——白驹过隙
Description定义类仙人掌为:求类仙人掌上的最大独立集大小,(n<=50000,m<=100000)(n<=50000,m<=100000)(n<=50000,m<=100000)SolutionCode注意f[p2][p1][0][1]f[p2][p1][0][1]f[p2][p1][0][1]等于f[p...原创 2019-03-21 18:09:45 · 249 阅读 · 0 评论 -
区间gcd
Description区间加减、区间gcdgcdgcdSolution因为gcd(a,b)=gcd(a,b−a)gcd(a,b)=gcd(a,b-a)gcd(a,b)=gcd(a,b−a),所以可以差分,gcd(al,al+1,...,ar)=gcd(al,al+1−al,...,ar−ar−1)gcd(a_l,a_{l+1},...,a_r)=gcd(a_l,a_{l+1}-a_l,.....原创 2019-03-13 15:41:54 · 1641 阅读 · 0 评论 -
绍兴一中模拟赛3.22——踟躇(chíchú)而过
Descriptionn<=1018n<=10^{18}n<=1018,保证gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1Solution考虑计算大于等于ttt的第一个满足f(x,k)=sf(x,k)=sf(x,k)=s的数我们可以从高位到低位贪心去填,每一位从零开始依次尝试,看剩余位用剩余数字去填能否大于等于 ttt我们设这个过程叫ne...原创 2019-03-22 20:11:00 · 339 阅读 · 0 评论 -
调配颜色(自己随便造的名字)
Description有一个长度为nnn的数列,每过一个单位时间所有数都减111,一旦数列中有一个数变成000就结束。有mmm次给数列中的数加111的机会,但一个单位时间只能选一个数加111,问最多进行多少时间Solution本来一个单位时间能选多个数加111的话就是一道经典题,直接二分答案即可这题也是二分答案,但是每个单位时间只能加111个数就让人很头疼可以转化一下命题,改成:一个单位...原创 2019-01-11 15:41:57 · 334 阅读 · 0 评论 -
bzoj3097: Hash Killer I
题目题解如果basebasebase是偶数,那么a.........aaa(&amp;amp;gt;64a.........aaa(&amp;amp;gt;64a.........aaa(&amp;gt;64个a)a)a)与ba.......aa(aba.......aa(aba.......aa(a的数量为前面那么串aaa的数量−1)-1)−1),这两个串长度相同,hashhashhash值相同,显然串是不同的,这...转载 2018-12-18 09:15:17 · 391 阅读 · 0 评论 -
bzoj3668: [Noi2014]起床困难综合症
题目每一位用0/10/10/1判断,如果某位用000可以在最后得到111,那就用000,否则,如果111可以得到,且这一位小于mmm,那么这位就是111,mmm减去相应的值,复杂度O(n)O(n)O(n)#include<cstdio>int x,x0,x1,n,m,i,ans;char ch;inline char gc(){ static char buf[100000...原创 2018-12-17 11:19:57 · 205 阅读 · 0 评论 -
cf767B. The Queue
题目 题解 细节特别多,写完以后wa了三四发以后实在想不出哪里漏想了,就看数据,又wa了好几发,实在不行,就看了题解 程序其实很短#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=100002;int i,n;ll x,s,ans,t,e,mx,mn;inline...原创 2018-07-08 10:31:13 · 169 阅读 · 0 评论 -
bzoj1303: [CQOI2009]中位数图
题目Solution因为我们只关心相对大小,所以数字可以转为1,-1,0。要求覆盖b位置的总和为0的连续子序列数量Code#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,a,b,i,s,ri,sum[2][200001];ll ans;inline char...原创 2018-07-25 08:29:33 · 112 阅读 · 0 评论 -
bzoj3142: [Hnoi2013]数列
题目 题解#include<bits/stdc++.h>using namespace std;typedef long long ll;ll n,k,m,p;ll pw(ll x,ll y){ ll z=1; for (;y;y>>=1,x=x*x%p) if (y&1) z=z*x%p; return z...原创 2018-08-01 14:44:00 · 150 阅读 · 0 评论 -
bzoj1045: [HAOI2008] 糖果传递&&3293: [Cqoi2011]分金币
bzoj1045 bzoj3293 题解Solution 又是双倍经验题 推导如下: “`cpp“`#include转载 2018-08-15 23:12:48 · 163 阅读 · 0 评论 -
bzoj3997: [TJOI2015]组合数学
题目题解#Solution:将每一个财宝抽象成一个点,这就变成了一个有向无环图的最小路径覆盖,对于这类问题,我们知道最长反链=最小路径覆盖,所以求出这张图的最长反链就可以了。对于一个点,它的左上角是可以到达的,但是右上角不能,所以用f[i][j] 表示以i,j为左下角的矩形的最长反链,则f[i][j]=max(f[i][j+1],f[i-1][j],f[i-1][j+1]+a[i][j])#...转载 2018-09-22 16:08:00 · 202 阅读 · 0 评论 -
51nod1431 快乐排队
题目Solutiona[i]a[i]a[i]等价于a[i]+ia[i]+ia[i]+i,若有数重复出现,则是SadSadSad,否则是HappyHappyHappyCode#include<bits/stdc++.h>using namespace std;int i,x,n;map<int,int>mp;inline char gc(){ static ...原创 2018-10-06 14:02:22 · 204 阅读 · 0 评论 -
bzoj4384: [POI2015]Trzy wieże
以下把B,C,S看作a,b,c结论一:对于满足条件的最长子段[l,r][l,r][l,r],只有两种情况:一、3种字母个数都相差1;二、l=1l=1l=1或r=nr=nr=n证明:结论二:对于子段[l,r][l,r][l,r],当l∈[1,3]l∈[1,3]l∈[1,3]或r∈[n−2,n]r∈[n−2,n]r∈[n−2,n]时一定有解,而且一定能找到最优解。...原创 2018-10-07 08:16:01 · 623 阅读 · 1 评论 -
bzoj3714: [PA2014]Kuglarz
题目题解Solution知道了第x~y个杯子的奇偶性,就相当于知道了x和x-1之间的缝到y和y+1之间的缝的奇偶性知道了缝a到缝b的奇偶性和缝b到缝c的奇偶性,我们就知道了缝a到缝c的奇偶性要知道所有杯子底下有没有球,我们就要知道每个杯子左右两端的缝之间的奇偶性,也就相当于要知道任意两个缝之间的奇偶性所以这就是一道花式最小生成树问题-_-知道奇偶性相当于连一条边,整个图联通了就都能知道...转载 2018-10-22 09:08:24 · 117 阅读 · 0 评论 -
绍兴一中模拟赛10.27——球
Description众所周知AKKing_FB有n(n&amp;lt;=5000)n(n&amp;lt;=5000)n(n&lt;=5000)个球,第i个球有两个属性a[i],b[i]a[i],b[i]a[i],b[i]。AKKingFBAKKing_FBAKKingFB想从中取出一些球,使得这些球的b[i]b[i]b[i]之和最大。但是这题有些奇怪的条件:1.1.1.当AKKingFB...原创 2018-10-27 22:03:38 · 207 阅读 · 0 评论 -
51nod 1241 特殊的排序
题目Solution求d=1的最长等差子序列Code#include<bits/stdc++.h>using namespace std;const int N=50002;int n,i,ans,f[N],a[N],x;inline char gc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&...原创 2018-11-01 11:06:54 · 170 阅读 · 0 评论 -
spoj5973 SELTEAM - Selecting Teams
题目Solution刚开始以为是Σi=1kCni⋅Cji⋅j\Sigma_{i=1}^kC_n^i\cdot C_j^i\cdot jΣi=1kCni⋅Cji⋅j但其实可以考虑改变考虑顺序,先取iii个人,再选取队长,再选其他人,得到Σi=1kCni⋅i⋅2i−1\Sigma_{i=1}^kC_n^i\cdot i\cdot 2^{i-1}Σi=1kCni⋅i⋅2i−1(这公式以前...原创 2018-11-06 10:01:09 · 158 阅读 · 0 评论 -
绍兴一中模拟赛11.2——Alice的幸运数
原题Solution引理1:当n&gt;6n&gt;6n>6时全用andandand能使最小值为000111个andandand能使111的个数减半,而111个数最多323232个111,所以666个数能使111的个数为000引理2:xorxorxor操作能被andandand操作代替0^0=0;0&~0=00^1=1;0&~1=01^0=1;1...原创 2018-11-02 17:46:05 · 393 阅读 · 0 评论 -
hihocoder #1865 : 最大公约数
题目Solution当f[i]f[i]f[i]表示满足gcd(k1,k2,k3…)=igcd(k_1, k_2, k_3 … )=igcd(k1,k2,k3…)=i的xxx个数假设没有任何限制,那么2k1⋅3k2⋅5k3...2^{k_1}\cdot 3^{k_2}\cdot 5^{k_3}...2k1⋅3k2⋅5k3...可以表示所有数所以2k1i⋅3k2i⋅5k3i...2...原创 2018-11-05 16:47:48 · 264 阅读 · 0 评论 -
51nod 1662 构造模函数
题目看了代码就知道怎么做了。。。#include<bits/stdc++.h>using namespace std;const int M=1e9+7;int k,p,s,m;int pw(int x,int y){ int z=1; for (;y;y>>=1,x=1ll*x*x%M) if (y&1) z=1ll*z*x%M; retur...原创 2018-12-20 13:42:09 · 148 阅读 · 0 评论 -
51nod1496 最小异或和
题目令len=r−l+1len=r-l+1len=r−l+1,注意kkk和lenlenlen要区分开1:ans=01:ans=01:ans=0,条件:选444个连续的数,末尾是10,11,00,0110,11,00,0110,11,00,012:ans=02:ans=02:ans=0,条件:选333个数,分别为:0 1 1 1 1 1 1 1 1 1 1 1 1(&gt;=l&am...原创 2018-12-15 16:24:40 · 444 阅读 · 0 评论 -
51nod 2206 低买高卖&codeforces867E Buy Low Sell High
题目Solution用堆保存最小值,遇到大于堆顶的元素就把ans加上差值,然后这个元素入队两次,入队两次是为了有一次“后悔”的机会,也就是先选着,遇到更好的就替换掉Code#include<bits/stdc++.h>using namespace std;int i,ans,x,n;priority_queue<int,vector<int>,grea...原创 2018-12-20 23:27:33 · 504 阅读 · 1 评论 -
bzoj1078: [SCOI2008]斜堆
题目题解考虑斜堆中最后插入的那个结点,容易发现:(1)它一定是一个极左结点(就是从根往它的路上一直都是沿着左链走),因为插入的时候每次都是插入到左子树中;(2)它一定木有右子树,因为插入的时候每次都是把原来的某棵子树作为新结点的左子树;满足(1)(2)的结点可能有多个,但紧接着可以发现,这个斜堆中的每个结点如果木有左子结点,那么也木有右子结点(或者说,每个非叶结点都有左子树),而在插入...转载 2018-12-11 09:33:45 · 223 阅读 · 0 评论 -
bzoj5391: G
看了题解,豁然开朗 T 的字符集为 1 时是最优的,因此答案为 26 个字符出现次数的最小值。 证明:字符集为 1 时可以使得 LCS 为 26 个字符出现次数的最小值。而对于任意一个串,它和原串的 LCS 至少为 26 个字符出现次数的最小值。——by Claris#include<bits/stdc++.h>using namespace std;cha...原创 2018-06-25 21:43:13 · 183 阅读 · 0 评论