自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ymzqwq的博客

除了长期更新的其他放博客园啦https://www.cnblogs.com/ymzqwq/

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 TopCoder SRM 577 Div1 250 EllysRoomAssignmentsDiv1

又是一道细节题? 按题意一轮一轮分组就行了,最后一轮可能分不满,反正贼麻烦= =#include <bits/stdc++.h>using namespace std;const int N=2501;string s;int n,a[N];class EllysRoomAssignmentsDiv1 { public: double getAve...

2018-08-31 07:46:31 247

原创 TopCoder SRM 577 Div2 1000 EllysCoprimesDiv2

自己装了插件貌似哪里没弄好。。不太懂为什么这种题也是1000// BEGIN CUT HERE// END CUT HERE#line 5 "EllysCoprimesDiv2.cpp"#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a...

2018-08-30 14:07:04 254

原创 TopCoder SRM 576 Div1 250 ArcadeManao

一开始写了个智障版bfs,样例都没过。。 然后心血来潮写个并查集,结果各种FST。。并查集的思路很简单,就是维护哪些点能相互到达,然后不断延长梯子,直到最底下一层和金币联通……二分+bfs估计也是可过的。#include <bits/stdc++.h>using namespace std;const int N=51;const int dx[4]={1,-1,0...

2018-08-29 19:04:14 194

原创 TopCoder SRM 576 Div2 1000 CharacterBoard2

TC的插件突然不见了。。游戏体验极差= = 呜呜呜插件真好QAQ我们可以枚举模板串的长度,然后就可以知道子矩阵中的每一个位置对应模板串的哪一位了。要判断这个长度是否可行,可以把串中的出现过的每一位记录下来。有些位置可能没有出现,那就是随便选。#include <bits/stdc++.h>using namespace std;const int p=1e9+9;con...

2018-08-29 17:44:18 235

原创 TopCoder SRM 574 Div2 1000 PolygonTraversal2

看到数据范围这么小,果断暴力dfs啊。 判断线段相交看着挺奇怪的,可以观察到把两条相交线段四个端点排序后,同一条线段的两个端点会被隔开。要注意的是有相同端点的两条线段肯定不相交。#include <bits/stdc++.h>using namespace std;const int N=15;int n,m,ans;int c[N],b[N];class Polyg...

2018-08-28 19:40:26 224

原创 TopCoder SRM 573 Div1 250 TeamContest

裸裸的贪心啊。。(我会告诉你们我智障地FST了一发吗对于每组超过自己组的,我们要让它:最大的尽量大最小的尽量小(于是大的就可以留给别的组)中间的尽量小(理由同上)然后就是sort一下,暴力按这个流程分组,看下最后有几组比自己组大的。#include <bits/stdc++.h>using namespace std;int n;class TeamCo...

2018-08-28 16:05:33 250

原创 TopCoder SRM 573 Div2 1000 WolfPackDivTwo

这题被边界问题坑了,我以为不会出事的,结果出了大事,cout,printf,还有不输出的答案全是不一样的,这波操作看得我一脸懵逼。。这题还挺简单的。用f[i][j][k]f[i][j][k]f[i][j][k]表示走了iii步,向右移动jjj个单位,向上移动kkk个单位,DP一波预处理出来。最后暴力枚举到哪个点,统计答案。#include <bits/stdc++.h>usi...

2018-08-28 14:19:43 229

原创 TopCoder SRM 572 Div1 250 NewArenaPassword

题目给出的条件是一些相等关系,很容易想到可以用并查集维护。要让每一个联通块都是相同的字母并且修改最少,肯定就是全部修改成出现最多的字母,暴力统计即可。#include <bits/stdc++.h>using namespace std;const int N=51;int n,f[N];int tot[26];class NewArenaPassword {pu...

2018-08-28 10:58:56 297

原创 TopCoder SRM 572 Div2 1000 DistinctRemainders

题目说了KKK个数模mmm两两互不相同,有点类似0/1背包,每个剩余类只能选一个,可以用f[i][j]f[i][j]f[i][j]表示iii个在[0,M−1][0,M−1][0,M-1]的数和为jjj的方案数,DP一波。 对于f[i][j]f[i][j]f[i][j],若j≡N(mod M)j≡N(mod M)j \equiv N (mod\ M)且j<=Nj<=...

2018-08-26 21:09:49 266

原创 TopCoder SRM 571 Div1 250 FoxAndMp3

就是个大暴力? n<=50n<=50nn>50n>50n>50一样做 n>50n>50n>50:用一个dfs按字典序枚举[1,n][1,n][1,n]中的数,为了方便直接用一下字符串流转成字符串就行了。#include <bits/stdc++.h>using namespace std;vector<string> a;s...

2018-08-14 21:05:01 203

原创 TopCoder SRM 571 Div2 1000 MagicMoleculeEasy

震惊!竟然就是个爆搜…… 爆搜每条边上选哪个点,如果最后还没选满KKK个,就挑没选过的点里大的选。 代码有点丑。。#include <bits/stdc++.h>using namespace std;const int N=51;const int M=N*N;int n,m,a[N],b[N],K,num[N];int u[M],v[M];int ans,s;...

2018-08-14 20:14:54 237

原创 TopCoder SRM 570 Div1 550 CentaurCompany

和Div2的1000类型差不多,都是个很套路的树形DP 我的做法暴力得要死,天晓得怎么过的。。 f[0/1][i][j][k][l]f[0/1][i][j][k][l]f[0/1][i][j][k][l],0/1表示第iii个节点在哪个公司,jjj表示humanhumanhuman公司有几人,kkk表示humanhumanhuman公司有几个联通块,lll表示horsehorsehorse公司...

2018-08-14 16:07:02 297

原创 TopCoder SRM 570 Div1 250 RobotHerb

可以发现执行四次之后方向一定和原来相同,有了这个性质就很容易处理了。#include <bits/stdc++.h>#define ll long longusing namespace std;const int dx[4]={0,1,0,-1};const int dy[4]={1,0,-1,0};int n;ll x,y;int d;class RobotH...

2018-08-14 13:18:39 245

原创 TopCoder SRM 570 Div2 1000 CentaurCompanyDiv2

这次的1000算简单的,就是统计有几个子树。 树形DP一波,f[i]f[i]f[i]表示以iii为根的子树数量,枚举儿子,转移有三种种情况:只连之前的儿子(f[i]f[i]f[i])只连当前儿子(f[v[i]]+1f[v[i]]+1f[v[i]]+1)都连(f[i]∗(f[v[i]]+1)f[i]∗(f[v[i]]+1)f[i]*(f[v[i]]+1))分别计数即可。#inc...

2018-08-14 08:48:48 229

原创 TopCoder SRM 569 Div1 500 TheJediTest (首次Div1 500!!)

啦啦首次做出Div500 虽然只有250+QAQ 因为还是卡了一会看到数据范围这么小,首先想到了状压 首先显然我们要让每一层的人都尽量是KKK的倍数 我们自下往上逐层考虑 为了接近KKK的倍数,要么由每一层多出来的人往上走,要么就是上面一层的人补下来 把这两种情况状压一下,1表示往上走,0表示走下来 有一个需要注意的地方就是一个人只能走一层,所以移动人数还要和原来人数取min#i...

2018-08-13 21:32:13 301

原创 TopCoder SRM 569 Div1 250 TheDevice

对于每一位,都至少要有1个0,2个1,如果不足就要添加。#include <bits/stdc++.h>using namespace std;int n,m;class TheDevice {public: int minimumAdditional( vector <string> plates );};int TheDevice::minim...

2018-08-13 20:44:13 228

原创 奶牛浴场

xy题,数据水1000×10001000×10001000\times1000的,无聊写个悬线法。。#include<bits/stdc++.h>using namespace std;const int N=1001;const int M=10001;int n,p,q,a[N][N],up[N][N],L[N][N],r[N][N],le[N][N],ri[N][N]...

2018-08-13 20:02:06 319

原创 TopCoder SRM 569 Div2 1000 MegaFactorialDiv2

这次的1000好简单啊w(゚Д゚)w 然而我还是FST了。。因为中间忘记模了。。。好像就是个大暴力啊 可以直接根据题目给出的递推式把n!kn!kn!k个各个质因子个数递推出来(不过空间开不下要用滚动数组) 求因子个数有个公式相信大家小学就知道了 若x=pa11⋅pa22⋯pammx=p1a1⋅p2a2⋯pmamx=p_1^{a_1}\cdot p_2^{a_2}\cdots p_m^{...

2018-08-13 19:57:25 299

原创 TopCoder SRM 568 Div1 250 BallsSeparating

最不擅长的码农题,情况繁琐。如果一个颜色存在,那么必须有至少一个盒子放这种颜色。我们枚举必须放某种颜色的盒子,其余的盒子把数量较小的两种颜色拿走就行了。//tc is healthy, just do it#include <bits/stdc++.h>using namespace std;const int N=51;int n,c[N];class Balls...

2018-08-13 09:20:05 200

原创 TopCoder SRM 566 Div1 250 PenguinSledding

可以发现满足条件的路径只有几种情况:一条都不选只选一条一个点上连若干条边,且边数>=2(就是类似一朵花的形状)三条边构成一个环(这种情况很容易漏掉)分别计算即可。//tc is healthy, just do it#include <bits/stdc++.h>#define ll long longusing namespace std;cons...

2018-08-10 19:42:04 265

原创 TopCoder SRM 567 Div2 1000 countPlacements

神tm这题有毒,模数是1e9+9不是1e9+7坑死我了容易发现有些格子是必须作为山顶的,其余格子是不是山顶都是无所谓的。一个格子只要满足上方三个都不是’X’就必须作为一个山顶,因为没有别的山顶可以覆盖它了。可以统计出必须为山顶的格子有 sss 个,其它’X’的格子有 sXsXsX个。套用排列组合经典的小球问题,就相当于将 NNN 个不同的小球放入 sXsXsX 个盒子里,可以为空,其中 s...

2018-08-10 14:29:17 197

原创 [HDU 5780] gcd (公式证明)

做出这题你需要推出一个重要的式子:gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(x^a-1,x^b-1)=x^{gcd(a,b)}-1 我这证明可能不算严谨吧。。。。 反正OI不需要证明,只需要感性理解。然而我个人觉得感性理解反而比证明重要啊,证明不就是几个式子套来套去,过几天就忘光了。 不妨设a>ba>ba>b,...

2018-08-10 09:05:19 478

原创 [HDU4358] Boring counting (树上启发式合并)

感叹一句,暴力即优雅。 CF上这个blog写得真心好:[Tutorial] Sack (dsu on tree)#include<iostream>#include<cstdio>#include<cstring>#include<map>#define l

2018-08-08 17:36:53 297

原创 1到n的k次方和

∑i=1ni=n(n+1)2∑i=1ni=n(n+1)2\sum_{i=1}^ni=\frac{n(n+1)}{2} ∑i=1ni2=2n3+3n2+n6∑i=1ni2=2n3+3n2+n6\sum_{i=1}^ni^2=\frac{2n^3+3n^2+n}{6} ∑i=1ni3=n4+2n3+n24∑i=1ni3=n4+2n3+n24\sum_{i=1}^ni^3=\frac{n^4+2n^...

2018-08-08 11:36:55 7599 2

原创 TopCoder SRM 682 Div2 1000 FriendlyRobot

大概思路是用f[i][j]f[i][j]f[i][j]表示当前执行到第iii个操作,改变了jjj次时回到原点的最大次数,并且此时刚好在原点(这是为了方便转移)。然后每次只需要枚举一个kkk,计算出执行完(i,k](i,k](i,k]这一段操作后再回到原点需要修改几个,就可以进行转移。 少写了一句判断状态是否可行害得我懵逼了好久(感谢xLLLx帮我Debug)#include <bits...

2018-08-07 14:53:50 169 1

原创 [hdu 4109] Instrction Arrangement

传送门 就是个关键路径嘛,我一开始dfs还写挂了,于是上网找题解,怎么清一色topsort??这还叫我怎么贺 压根就不用啊,记忆化搜索具有天然拓扑序。 怎么感觉网上好多题解都是贺来贺去的 再次被hdu的多组数据坑了一发#include<bits/stdc++.h>#define lson (x<<1)#define rson (x<<1|1)#...

2018-08-03 15:20:29 180

原创 [BZOJ 3040] Dijktra && 手写堆 (非普通模板)

mdzz调了我两天因为少写了一句交换序号。。 不知道517从哪里搞来的题 517好像把这题撤了(可能是由于他自己写T了。。) 这题用普通的手写堆还过不了。。考虑更新一个堆中的元素时,普通的优先队列是再push一个进去,但是手写堆就不需要这样,只要找到这个元素在堆中位置再尝试向上交换就行了,代码中就是update函数。别的pop(),top()之类操作和普通堆都差不多。最开始要把所有元素放进...

2018-08-03 15:11:46 157

原创 TopCoder SRM 678 Div2

T1 ThePhantomMenace#include <bits/stdc++.h>using namespace std;class ThePhantomMenace {public: int find( vector <int> doors, vector <int> droids );};int ThePhantomMenace:...

2018-08-01 20:12:14 239

agc036_editorial.pdf

agc036 题解

2019-07-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除