自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dicer_的博客

水题者

  • 博客(94)
  • 收藏
  • 关注

原创 各种模板 - 持续更新中···

Lucas定理求C(n,m)% P:typedef long long LL;LL mod;inline LL pow(LL a, LL b)//快速幂是为了求逆元{ LL ans = 1; for(; b; b >&

2018-08-27 14:30:31 322

原创 NAIPC 2017 C, I

题目链接求树上i,j两点之间的距离,其中i是j的因子。我们可以先求出LCA(i,j),然后套这个公式:dist[i,j]=(dis[i]+dis[j]−2∗dis[LCA(i,j)]+1)dist[i,j] = (dis[i]+dis[j]-2*dis[LCA(i,j)]+1)dist[i,j]=(dis[i]+dis[j]−2∗dis[LCA(i,j)]+1)dis[i]表示1到i的距离...

2018-10-02 15:05:58 389

原创 【洛谷】P1783 海滩防御(最小生成树+思维)

题目链接本来以为是一道计算几何,然后看大佬的代码发现竟然是最小生成树??能想到最小生成树很诡异,建图也很诡异。最后相当于求0-n+1的这条路上的最大边权。列数就是该点的横坐标。建完图套一下Krustra的板子就好了。#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using n...

2018-09-25 22:23:38 359 1

原创 【洛谷】P3870 - 开关(线段树)

题目链接线段树裸题。。然后码了一下午,找标程对拍才过。。真是菜啊。AC代码:#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using namespace std;#define clr(s, x) memset(s, x, sizeof(s))typedef long lo...

2018-09-25 18:49:56 215

原创 【Codeforces】1047 - C. Enlarge GCD

题目链接题意:给出n个数字,求最少删除几个可以使剩下的数字的GCD大于n个数字的GCD。思路:求出最多的公共因子,去掉没有这个因子的剩下的数的GCD大于原来的GCD。#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using namespace std;#define clr(s,...

2018-09-22 18:30:34 1137

原创 【Codeforces】1042 - B Vitamins

题目链接先看一下我暴力的代码:#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using namespace std;#define clr(s, x) memset(s, x, sizeof(s))typedef long long ll;typedef unsigned lo...

2018-09-20 22:25:54 206

原创 ACM-ICPC 2018 徐州赛区网络赛

题目链接跟环形涂色问题很像,每一个数字都只有一个不能相邻的数字。环形涂色的总方案数公式:#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using namespace std;#define clr(s, x) memset(s, x, sizeof(s))typedef lo...

2018-09-18 14:40:31 273

原创 ACM-ICPC 2018 沈阳赛区网络赛 G. Spare Tire (容斥原理)

题目链接#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>using namespace std;#define clr(s, x) memset(s, x, sizeof(s))typedef long long ll;typedef unsigned long long ull;...

2018-09-17 22:58:10 248

原创 ACM-ICPC 2018 焦作赛区网络赛

题目链接 1000ms ...

2018-09-17 18:39:22 487

原创 【牛客】练习赛26 - B烟花(概率DP)

题目链接题意:小a有个烟花,每个烟花代表着互不相同的颜色,对于第个烟花,它有的概率点燃,现在小a要去点燃它们,他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 。思路:概率DP 。 我们先看下面这个表格,是n为3,k为2的情况。 i\dp\j 0 1 2 0 1 0 0 1 1−p11−p11-p_1 p1p1p_1...

2018-09-09 18:57:54 210

原创 【杭电oj】4405 - Aeroplane chess(期望DP)

题目链接直接递推就行了,如果能从x飞到y,相当于dp[x]=dp[y],特判一下就行。AC代码:#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>#include <ext/rope>using namespace std;using namespace ...

2018-09-09 17:40:27 112

原创 【POJ】2096 - Collecting Bugs(期望DP)

题目链接原文链接:点击查看AC代码:/*POJ 2096概率DPwrited by kuangbindp求期望逆着递推求解题意:(题意看题目确实比较难道,n和s都要找半天才能找到) 一个软件有s个子系统,会产生n种bug 某人一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n ...

2018-09-09 16:42:46 106

原创 【Codeforces】1038 - 个人总结(思维)

比赛连接 A. Equality: 题意:给出一个长度为n的字符串,求前k个大写字母出现次数相同的最长子序列。 思路:因为是子序列,不用保证连续,所以只要去前k个大写字母中出现次数最小的那个值乘上k即可。 ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans = k*min(a_1,a...

2018-09-07 09:50:16 388

原创 【杭电oj】1532 - Drainage Ditches(最大流)

题目链接最大流的模板题。。多动手模拟,有一个讲的很清楚的博客:传送门听说EK容易TLE。EK:#include <bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;const int N = 210;int n, m, c[N][N], pre[N], mmin;bool bfs(i...

2018-09-06 21:09:59 203

原创 【Codeforces】766 - 个人总结

题目链接给出n个单词,m次操作,q次查询。 操作有两种,一种是两种为同义词,另一种是 两种为反义词。 如果操作不与之前形成的关系冲突,输出YES,否则输出NO。 查询:给两个单词求它们的关系,同义词输出1,反义词输入2。用0表示与根节点同义,1表示反义。重要的还是find函数,在刚经过merge后,并查集的结构可能不是一颗只有两层的树,但是下一步无论是查询还是操作都有一步find...

2018-09-05 16:45:17 176

原创 【hihocoder】1515 - 分数调查 (带权并查集)

题目链接文章推荐:点击查看用val[x]存放x与根节点的差。感觉带权并查集的find函数跟merge函数有很多递归回溯的思想。 还有大佬说向量偏移之类的,我觉得应该就是利用关系之间的传递性。AC代码:#include <bits/stdc++.h>using namespace std;const int N = 2e5;int n, m, q, x, ...

2018-09-05 13:04:39 176

原创 【Codeforces】1037 - D. Valid BFS? (思维)

题目链接题意:给出你一棵树,然后给出一个遍历顺序,问:该序列是否为这棵树的可能BFS序。你只需考虑从1开始遍历的情况。思路:本来自己写的想着是只要当前这个点的步数大于等于前一个点就可行,但其实不对,这个条件不充分。是有效的bfs序的充分的条件应该是:层数不降且父节点顺序不降。看到前几的大佬代码更简洁,只是按照进队列的顺序排了一个序,这样就可以我们保证自己写的BFS序最可能是符合所给...

2018-09-03 23:02:04 397

原创 【BZOJ】2763 - [JLOI2011]飞行路线 (分层图 + 堆优化Dijkstra)

题目链接题意:还是单源最短路问题,不过不同的是你可以任选至多k条边并将它们的权值变成0。思路:这是一类问题,我们可以把原图复制k边,形成k层,我们在每一次加边的时候不但要加上本来的边,还将n层图之间的u,v相连,权值为0,相当于一条快速下滑通道。因为图最多k层,所以最多只能使用k次下滑通道。你可能会觉得非常难实现,其实这本质上和经典的最短路没有区别,只是边更多了。RE了无数次,因为不光...

2018-09-02 22:25:43 187

原创 【杭电oj】2066 - 一个人的旅行(SPFA)

题目链接单源最短路,但是有多个终点,求到最近终点的距离。思路:唯一的难点就是将草儿家看成0点,做一个炒鸡源点。没注意多组输入WA1。AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int ,int> pii;const i...

2018-09-02 17:27:20 421

原创 【CODEVS】1557 - 热浪 (SPFA)

题目链接其实就是一道单源最短路的题目,就是想测试一下我的SPFA板子。双向边看成单向WA2。。。AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int ,int> pii;const int INF = 0x3f3f3f3f;c...

2018-09-02 16:38:00 182

原创 【杭电oj】1536 - S-Nim(SG函数)

题目链接题意:类似经典的Nim博弈,不同的是这个题限制了可使用的操作,给出了操作集合。于是我们根据操作集合先做出SG数组就行了。WA了一遍,有一个坑点就是给出的操作不一定是升序的,需要先排下序。。。 感觉自己是个傻子。AC代码:#include <bits/stdc++.h>using namespace std;const int N = 1e4+100;...

2018-09-01 23:13:55 220

原创 【牛客】Wannafly - 23B (SG函数)

题目链接挺裸的SG函数,打个表枚举一下因子就行了。至于SG函数的原理,就是SG定理,感觉知道就行了,不知道怎么证明的。AC代码:#include <bits/stdc++.h>using namespace std;const int N = 1e5+100;int sg[N],pile[N],n;vector&a

2018-09-01 22:00:18 143

原创 【杭电oj】1847 - Good Luck in CET-4 Everybody!(博弈论)

题目链接这个是Bash博弈中一个经典的例子,当且仅当n为三的倍数时为必败点。还有就是可以 通过SG函数来递推每个点的状态,当然这个就费时费力了,果然数学优化是降维打击。AC代码:#include <bits/stdc++.h>using namespace std;bool Sg[1024]; //Sg[i] == 0 表示i点为必负点int ...

2018-09-01 10:57:18 162

原创 【洛谷】P1126 - 机器人搬重物 (BFS + 大模拟)

题目链接这道题,恶心了我一下午,历时四个小时,总算是写完了。 不太建议写这道题,太浪费时间了。恶心之处就在于判断机器人的体积,另外初始位置竟然可能有砖块?? 还有就是,必要机器人的左上角和终点重合。AC代码:#include <bits/stdc++.h>using namespace std;void solve();int main(int argc,...

2018-08-31 18:17:36 244

原创 【洛谷】P1219 - 八皇后(经典dfs)

题目连接经典题,题意就不说了。 记得以前上离散课的时候,老师说过这个问题。时间复杂度是指数级增加的。我写的判断比较暴力,所以n=13就不行了,特判过得/捂脸。 如果不想这么写的话,可以通过四个数组来记录行列左右对角线是否可以放下棋子,这样可以快很多。AC代码(伪):#include <bits/stdc++.h>using namespace std;void ...

2018-08-31 13:50:51 172

原创 【杭电OJ】1052 - 田忌赛马 (贪心)

题目链接题意:就是田忌赛马,不过是n匹马。思路:就是田忌赛马的思路,那最弱的和对方最强的比赛。 本来想的是只考虑最强的就行了,然后发现 3 300 200 100 300 300 100这种情况不正确,很多情况漏掉,就换了思路。就是四个指针移来移去的,模拟就完事了。AC代码:#include <bits/stdc++.h&g...

2018-08-28 22:02:10 594

原创 【CodeForces】1029 - C Maximal Intersection (Multiset 多重集)

题目链接题意:在x轴上有n条线段,给出它们的左右端点,求去掉其中一条后,剩下n-1条线段的最大重叠长度。本来以为贪心能过的。。然后怎么都写不对,翻大佬的代码发现的一个没见过的容器 multiset,多重集。顾名思义,与 set 不同的就是,它可以存放重复的元素。然后利用multiset枚举删除的那条边就好了。AC代码:#include <bits/stdc++.h&g...

2018-08-28 17:38:45 112

原创 【CodeForces】675C - Money Transfers(思维)

题目链接题意:p城有n家银行,第i个银行与第i+1,i-1个银行相邻,特殊的,1与n相邻,即这些银行形成了一个环。你在n家银行都有账户,并且n个账户上的钱数或正或负,但总和为0,现在你需要通过转账,将你的n个账户余额全部更改为0,求最小操作数。思路:假设我们可以将这n家银行分成k段连续的区间,每个区间内银行余额和为0,那么我们只需对每个区间内进行移动即可,若第i个区间长度为 bi...

2018-08-28 17:19:53 251

原创 河 南 理 工 大 学 程 序 设计 竞 赛 - 图 灵 杯 赛 后 总 结

比赛打的不好,可能是第一次组队,配合不好,两位队友很强,我躺。还是说题吧。A Different Rectangle:本来以为和以前积分赛出过的方阵DP差不多,仔细看题发现不是方阵,而是矩阵,而且关系也没有那么简单的,就放弃了。 回来慢慢补。B 问题:第一眼看以为和前天的CF的b题一样,因为那道b题开黑的时候是我做的,于是想都没想果断敲,敲完过样例,样例都没过。然后认...

2018-08-28 00:17:15 185

原创 【杭电oj】4513 - 吉哥系列故事——完美队形II(Manacher)

题目链接题意: 求最长非递减回文子串,非递减指从两侧到中间非递减。 思路:本来是先求的最长回文,然后遍历解决非递减的问题,然后超时了。于是就在求回文的时候直接求的非递减。三目运算符那里错了,应该是mx-i,写成了mx-1,一直没看出来,卡了好久。。。AC代码:#include <stdio.h>#include <string.h>#i...

2018-08-27 20:53:13 100

原创 【洛谷】P3744 - 李彬的几何(计算几何题)

题目链接题意:求将一个凸多边形移动成非凸多边形的最短距离。思路:只要有一个角是平角那就不是凸多边形啦。所以就是找到将某一个角变成平角的最短距离。图示: 其中x为所求距离,直线代表移动后的平角。利用海伦公式s=p (p−a)(p−b)(p−c)−−−−−−−−−−−−−−−−−−√ , 其中 a ,b ,c ,p...

2018-08-27 11:22:10 215

原创 「杭电oj」2586 - How far away ?(LCA)

题目链接有N个村庄,两两相连,求任意两点之间的最短距离。可以先BFS求出每个节点到父节点的距离,然后利用LCA求出最短距离。AC代码:#include <stdio.h>#include <queue>#include <algorithm>#include <string.h>using namespace

2018-08-24 14:47:14 181

原创 【CodeForces】893 - D Credit Card (贪心)

题目链接题目读了好久。。 题意: 有一个人新办了一张信用卡,初始账户上没有钱。给出两个数字q,d。 q是操作次数。 操作分为三种:当aiaia_i为正值时表示信用卡上多了aiaia_i元。当aiaia_i为负值时表示信用卡支出了aiaia_i元。当aiaia_i为0时,进行一次查询,查询时信用卡上的前不能是负值。在每次操作前,这个人可以选择去银行充钱,但...

2018-08-23 23:51:15 277

原创 「51NOD」1126 - 求递推序列的第N项(矩阵快速幂)

题目链接给出A,B,N,三个数,求F[N]。给出A,B,N,三个数,求F[N]。给出A,B,N,三个数,求F[N]。 已知:F[N]=A∗F[N−1]+B∗F[N−2]已知:F[N]=A∗F[N−1]+B∗F[N−2]已知:F[N] = A*F[N-1] + B*F[N-2] F[1]=1,F[2]=1。F[1]=1,F[2]=1。F[1] = 1,F[2] = 1。AC代码:...

2018-08-23 20:20:21 146

原创 「POJ」2528 - Mayor's posters (离散化+线段树)

题目链接题意:有N张海报,给出每张海报的左右边界(包含),按顺序贴到墙上,问:当最后一张海报贴上后,还有几张海报能被看见。 这道题很显然是区间操作型的线段树,我们需要知道每个节点除了「L,R」以外还需要储存什么。我们最后是需要查询好友几张海报可以看到,所以只需要一个flag来标记当前区间被低级张海报覆盖。AC代码:#include <stdio.h>#inc...

2018-08-23 11:15:07 194

原创 「Codeforces」438 - D The Child and Sequence (线段树)

给出一个长度为n的序列,给出q次操作。 操作分为三种: 1:1,l,r。查询「l,r」的区间和。 2:2,l,r,mod。区间「l,r」全体模mod。 3:3,a,b。将a点的值更改为b。区间更新的线段树,有一个剪枝不太好想到,就是记录子树的Max,当对区间取模的时候,如果Max < mod的话,直接跳过。AC代码:#include &l...

2018-08-22 16:02:35 100

原创 【poj】3468 - A Simple Problem with Integers(线段树)

题目连接给出长度为n的整数序列,给出q次操作。操作分为区间更新和区间和查询两种。区间更新线段树裸题,算是板子题。AC代码:#include<stdio.h>using namespace std;const int N = 1e5+100;typedef long long ll;struct NODE{ int l,r; //左右端点 ...

2018-08-22 00:13:22 124

原创 「杭电oj」1166 - 敌兵布阵(线段树裸题)

题目链接线段树保留了二叉树的结构特点,能够在O(log(n))O(log(n))O(log(n)) 的时间内查询一些区间的信息,比如区间和,区间最大最小值,而且还支持数据更改。AC代码:#include <bits/stdc++.h>using namespace std;const int N = 2e6+100;struct Node{ int l,r;...

2018-08-21 15:30:13 187

原创 【POJ】2774 - Long Long Message(HASH + 二分)

题目连接题意:给出两个字符串,求出它们的最长公共子串(Longest Common Substring)分析: 如果两个串的长度在1e3的话,可以直接DP。但是这道题的长度在1e5,一定会超时加爆内存,改变思路。发现hash可以做,同时需要两次二分,第一次二分LCS的长度,第二次二分查找是否有满足的值。AC代码:#include<stdio.h>#i...

2018-08-20 16:30:53 318

原创 「poj」 2752 - Seek the Name, Seek the Fame (kmp && hash)

题目链接题意给出一个字符串,求串中可能出现的前后缀,从小到大输出。比如 abcdabc  abcdabc \ abcdabc\ 应该输出  3 7  3 7 \ 3 \ 7\ ,即  abc&nbsp

2018-08-18 16:42:26 263

空空如也

空空如也

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

TA关注的人

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