自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 【模板】数据结构 - 线段树

注意在C++中,加减运算比移位运算优先级高,移位运算比按位运算优先级高。封装版:const int MAXM=200000; //MAXM 为线段最大长度int a[MAXM+5],st[(MAXM<<2)+5]; //a数组为原数组st数组为四倍大小...

2018-08-24 10:47:59 223 2

原创 Codeforces 183B - Zoo 暴力、计算几何

连续出了3个锅:nm不分、访问内存前不检查地址偏移、分类不当。#include<bits/stdc++.h>using namespace std;#define ll long longint maxans[1000005];ll x[255];ll y[255];int main(){ int n,m; scanf("%d%d",&n...

2019-01-12 02:23:44 276

原创 ???

居然还有替代FFT的其他变换,除了沃尔什变换还有数论变换。

2018-12-29 10:58:18 168

原创 计算几何

https://blog.csdn.net/clasky/article/details/9990235S=i+e/2-1

2018-12-06 01:23:30 196

原创 凸包

https://blog.csdn.net/g21glf/article/details/80976917https://blog.csdn.net/u014688145/article/details/72200018分治和graham都是很优秀的nlognhttps://blog.csdn.net/yangkunpengD/article/details/51336453...

2018-12-06 01:06:12 161

转载 数据离散化

https://blog.csdn.net/weixin_43061009/article/details/82083983离散化线段树https://blog.csdn.net/nudt_spy/article/details/82682344

2018-12-06 00:33:32 160

原创 pb_ds数据结构

https://ksmeow.moe/wp-content/uploads/2017/07/C%E7%9A%84pb_ds%E5%BA%93%E5%9C%A8OI%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8-1.pdf大致看出来:优先队列添加了“插入元素”、“删除元素”、“合并”的操作平衡树添加了“合并”、“分裂”、“返回第k大”和“查询比x大的有几个”...

2018-12-04 23:39:04 333

原创 【模板】数据结构 - Treap

一种插入、删除、查询x是第k大、查询第k大是几的期望复杂度都是对数的数据结构。特点:代码简单(Splay性能均衡功能巨多就是太复杂了),好像还有可持久化版本普通的平衡树在特殊数据可能退化成链(被递增递减数据卡),Splay也是。但是Treap的平衡是期望平衡的,不受数据卡,而且常数比较小。当然据说Splay支持更多操作比如一些线段树的工作(所以Splay只做某些特定操作会慢?)。只是S...

2018-12-04 23:11:29 131

原创 【模板】数据结构 - 树状数组

好像树状数组的低位是叶节点,高位是根节点。

2018-12-04 22:23:04 134

原创 【kuangbin带我飞】专题七 线段树

由于我不会线段树,先弄一份模板。基本线段树模板(建树、点/区间修改、查询)基础线段树(闭区间)(单点修改、单点查询):const int MAXM=50000;          //定义 MAXM 为线段最大长度int a[MAXM+5],st[(MAXM<<2)+5];    // a 数组为 main 函数中读入的内容,st 数组为需要查询的数的信息(如和、最值...

2018-12-03 23:32:14 185

原创 【kuangbin带我飞】专题十二 基础DP1

G I

2018-11-24 15:00:28 187

原创 Codeforces Round #521 (Div. 3)

A 略。B 似乎只需要在一个方向贪心就好了,和书上说的一样,证明几种方法中,其中一种不比别的差,就是贪心了。所以必须要关一盏灯的话,因为贪心方向是向右的,所以关右边不会比关左边更差。C 下标访问数组的时候一定要注意越界的问题,或者用map的count方法适用性更广?其实这题只需要分去掉那个数是最大的(判断第二大数是不是一半)或者不是(判断最大数是不是一半)就行了。D 从一个数组里面...

2018-11-17 23:13:11 168

原创 搜索总结

简单搜索bfs1.要定义结构体数组,包含结点的位置,方便用队列管理,可以不包含时间(用vis数组记录时间)2.vis数组-1表示不可拓展,inf表示未入队,其他非负数表示已访问(暂时不需要区别是否出队);结点入队的同时修改vis数组为t3.用inline enqueue管理判断越界、不可拓展、已访问不用写到头秃4.从enqueue找到一个解后立刻退出可以减少大量叶子节点注1...

2018-11-07 23:30:11 139

原创 【kuangbin带我飞】专题二 搜索进阶

A - Eight 看起来好像在bzoj见过的?状压爆搜?一般好像爆搜都是用bfs的,有没有什么是使用进阶的搜索方法呢?H - Gap bfs+hash应该想到bfs的,毕竟每一步都只有4种选法,最多24步?4^24肯定是太大了的,怎么就可以保证bfs可以得到结果呢?还是说要充分理解搜索的上界是一个很松的上界?用hash判重我倒是可以理解。hash的博客:https://www.c...

2018-11-04 23:35:16 264

原创 【kuangbin带我飞】专题一 简单搜索

A-棋盘问题 dfs1.dfs进入时打上标记,退出时清除,不需要额外的状态记录2.可行性剪枝,减小常数3.用r[i],c[j]表示行和列的占用情况,减小常数#include<bits/stdc++.h>using namespace std;int n,k;char g[10][10];int r[10],c[10];int top,ans;pair&...

2018-11-04 16:24:01 330

原创 【BZOJ1088】扫雷Mine dfs

据说可以从头两格确定状态,但是我没有多想,直接就上了dfs/*1.在一头一尾加入空格?不行,还是要特判,或者加0或1?2.据说确定前两格检验就行了,不过我还是深搜?3.默认不需要取模吗?废话深搜(暴力)假如要取模早就T了,先试一下暴力深搜对不对4.用x1、x2、x3表示格子附近的第二行的状态*/#include<bits/stdc++.h>using namesp...

2018-11-04 10:46:31 173

原创 【总结】初等数论总结

https://blog.csdn.net/CYCKCN/article/details/68165147费马平方和定理:奇质数能表示为两个完全平方数之和,当且仅当它是4k+1型。换句话说能表示为两个完全平方数之和的数的4k+3因子必定有偶数次。https://blog.csdn.net/bigbigship/article/details/272343251.线性求逆元证明在http...

2018-11-03 23:36:10 651

原创 【BZOJ1041】圆上的整点 数论

也是完全不会做,靠百度搜索出来的鬼东西。太数学了以至于自己需要想的地方不多。既然要求圆上的整点,我们联想一下直线上的整点,是跟起点终点的gcd有关的?(事后诸葛亮) 已知圆中心对称,不妨设x>0,y>0求出第一象限点,最后加上坐标轴上的就好。问题变成求x^2+y^2=r^2的整数解。接下来又到了抄抄抄的时间。改写为y^2=r^2-x^2=(r+x)(r-x) 令d=gcd...

2018-11-03 23:19:11 319

原创 【BZOJ1026】windy数 数位dp

做的第一道数位dp的题目,看出来明显的数位dp特征但是不会做。还是约定一个解题步骤,以设计思路、数据结构、算法分析、细节、备注的顺序解决。设计思路就是看出数位dp之后百度一下?至少知道怎么设置状态之后后面的细节才自己想。数据结构:dp[i][j]表示数字位数为i位,最高位为j的合法数字的数量。 可以用pre[a]表示[0,a]的合法数字的总和,前缀和统计数量。算法分析:要转移到dp...

2018-11-03 09:41:00 181

原创 HDU 2102 判断最小的环的数量,可用并查集,这里是dfs写法

忘记考虑重边,要改成while跑到余量为0才走。#include<bits/stdc++.h>using namespace std;#define ll long longint vis[10000+5];int g[1000+5][1000+5];int res=0;int n,m;void dfs(int id){ /*printf("id=%d...

2018-11-02 00:37:52 266

原创 HDU 2102 A计划

/*1.尝试使用刷表法解决,bfs会不会更快呢?2.原来传送到对应位置是指真的对应位置而不是什么隔壁的传送门,是题目的歧义3.scanf读空行好像没有问题的样子4.相对位置是传送门对面Exo me?不对,好像是因为可以无限传送所以错了,去掉flashin再试一次5.dfs版本是不是可以剪枝?6.第2的改了居然没有修改坐标偏移*/#include<bits/stdc++.h&...

2018-11-01 00:54:04 168

原创 HDU 1007 Quoit Design(分治)

#include<bits/stdc++.h>using namespace std;double mindis2;struct cor { double x, y; bool operator<(const cor &that) { return x < that.x ? 1 : (x == that.x ? y < that.y : 0...

2018-08-30 22:36:38 90

原创 【模板】数据结构 - 并查集

代码://4.2 并查集struct DisjointSet { vector<int>father, rank; DisjointSet(int n) :father(n + 1), rank(n + 1) { for (int i = 1; i <= n; ++i) { father[i] = i; } } int find(int v) {...

2018-08-24 05:38:57 127

原创 Codeforces 1027 D. Mouse Hunt(并查集、dfs)

#include<bits/stdc++.h>using namespace std;#define sc(d) scanf("%d",&d)#define ll long longint c[200005];int g[200005];int n;struct DisjointSet { vector<int>father, rank;...

2018-08-19 06:20:58 647

原创 Codeforces 1016E. Rest In The Shades (二分查找、简单几何)

原题链接:http://codeforces.com/contest/1016/problem/E 题意简述:平面上有一个点光源,它以每秒1单位长度的速度从点  移动到点   。 轴正方向上有 个 不相交不接触的栅栏,它们可以表示为  。当点  与点光源的连线与某个栅栏相交或接触时,称点在阴影内。给定  个点,求出每个点在点光源从点  移动到点  时,处在阴影内的总时间  。...

2018-08-05 05:08:09 536

原创 Codeforces 7C. Line (裴蜀定理、扩展欧几里德)

题意是很简单的,找直线穿过的整点存在与否,存在则输出其中任意一个解,否则输出 -1 ,注意数据范围即可。需要用到以下两个简单的数论知识。 裴蜀定理方程:  中, 均是整数,则方程有整数解   的充要条件是  , 也是整数。扩展欧几里德算法考虑方程:   。不妨设  ,当  时, ,令  即可。当  时,由朴素欧几里德算法有  ll exgcd(ll a, ll b, l...

2018-08-03 16:30:58 206

原创 Codeforces 7

A. Kalevitch and Chess虽然想到了每次要涂完一整行才能计数,结果还是被算计了,有一种情况是全黑的。#include<bits/stdc++.h>using namespace std;char g[10][10];int paintR(int i){ for(int j=0;j<8;j++){ if(g[i][j]=...

2018-08-03 14:31:22 134

原创 Codeforces 3B. Lorry

大神说考虑到数据范围不能使用背包求解,但是由于物品的大小只有两种就很好办。一种方法是枚举大小为2的船一共占的大小,剩下的空间尽可能填1。另一种方法是先全部填1,然后每次拿最小的两个出来检测,要是他们的和比最大的2小,那么替换即可。 居然 sort 反向了,交了一个WA。#include <bits/stdc++.h>using namespace std;#d...

2018-08-02 04:48:46 171

原创 Codeforces 2С. Commentator problem (模拟退火、简单几何)

这个问题的正确解法实在是太复杂了,完全不知道怎么做,上网搜了巨神的答案才发现有个叫做“模拟退火”算法的东西,大概就是先假设一个初始值,算出他和题意的误差(方差),然后逐步逼近。假如一次移动让误差变小,则直接继续,否则让移动的幅度变小。也就是先确定大致的范围再逐步缩小范围求解。和标准的模拟退火不同,这里只有一个最优解,就不需要概率跳出。 #include<bits/stdc++....

2018-08-02 03:27:00 3308

原创 Codeforces 2B. The least round way

原来弄的一发AC原来是假的AC啊,这份代码里面加了一些修正。特例就在于0的处理,处理不好还会死循环。思路:要是矩阵中有0,则去找一条ans=0的路径,否则经过此0即可。否则找最短路径。 用一个巧妙的方法可以不用特判,用10代替0,则经过0的正常算法得到的结果至少为ans=1,不会引起以下错误:30 0 00 0 00 0 0 #include <io...

2018-08-02 03:05:09 236

原创 Codeforces 2A. Winner

一条以前写过的题居然还WA了好几次。先是没认真读题目,把 at least m 忽略掉了。题解居然是直接模拟三次就好了,反正都是 O(n) 的算法,实际上是一样的。#include<bits/stdc++.h>using namespace std;#define ll long longint n;map<string, map<ll, int >&...

2018-08-02 01:47:29 175

原创 Codeforces 1C. Ancient Berland Circus

前前后后卡了好多次的计算几何,涉及到很多几何题的坑。需要注意的点基本都在下面的注释里。用到了很多高中要用的几何公式,还牵扯到浮点数的最大公因数问题,总而言之是非常坑爹了。注意很多非递归的函数可以直接写成 inline 省去很多时间。#include<bits/stdc++.h>using namespace std;#define ll long long#def...

2018-08-01 17:49:46 194

原创 Codeforces 1B. Spreadsheets

就是熟悉一下分类讨论和string转int,唯一的难度在于关于 'Z' 的讨论,发现其实进制还是26进制,不过这里没有0反而有26,那就每次 C%26==0 时手动分离一个 'Z' 出来就好了。注意一下行和列别搞反,cin.tie(0) 对cout的影响(未解决),substr方法的两个参数分别是begin和length即可。#include<bits/stdc++.h>u...

2018-08-01 16:01:56 274

原创 Codeforces 1A. Theatre Square

一个n*m的广场,用a*a的方块铺满,求至少多少方块,可以多铺,边要平行。(1 ≤  n, m, a ≤ 10^9) 取上整乘积即可,注意是否要使用long long 。#include<bits/stdc++.h>using namespace std;#define ll long longint n,m,a;int solution(){ c...

2018-08-01 15:13:31 236

原创 20180506 GDCPC A题的启发

类似这种阶乘位于分子的,可以考虑其来自幂函数求导

2018-05-06 18:05:11 191

原创 SCUT_ACM-ICPC_Day001

2018/4/6http://www.cnblogs.com/clrs97/p/8020452.html今天的启发:map不会真是不行。明明会抄凸包,却不会抄旋转卡壳。

2018-04-06 00:25:53 148

空空如也

空空如也

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

TA关注的人

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