- 博客(114)
- 资源 (1)
- 收藏
- 关注
原创 那就这样吧
加上之前的一些错误总结1 开O2不能断点调试2重载运算符最好加上& 不然局部变量要重新复制3,不要手贱什么循环最后都是i++4不要什么都开vector. 五倍常数自己扣。。5 unique前要 sort6 注意离散化之后的线段树左右范围7spfa 弹出后赶紧要标记释放。。。8 并查集合并的正确姿势(a=getfa(x);b=getfa(y); if(a!=b)
2016-11-16 22:14:20
390
原创 破dp.
小松鼠开心地在树之间跳跃着,突然她停了下来。因为眼前出现了一个拿着专克超萌小松鼠的法宝————超萌游戏机的游客! 超萌游戏机之所以拥有这个名字,是因为它的屏幕是一个n 2的矩形。小松鼠接过游戏机,开始了她的第一个游戏:俄罗斯方块。 考虑到小松鼠的智商,游戏机里的方块只有下面四种,方块按顺序下落,可以在任意时刻(甚至是下落前)对其进行不限次数的旋转操作。 由于四种
2016-11-14 14:28:28
484
原创 奇环
Description 小松鼠终于吃撑了,她决定逃离这个地方。 我们用一张连通图来表示整个西湖的范围,每棵容小松鼠逗留的树都用这张图上的一个点来表示。小松鼠能够通过只跳一次互相到达的两棵树用图上的一条无向边来连接。 吃撑了的小松鼠有些神志不清,每次她连跳两条边之后才会在到达的那个点上休息。她想知道,是否存在一种连续的跳法,使得她有机会在所有的树上都休息至少一次。
2016-11-14 14:23:42
1631
转载 又是数学乱搞
开心,zkx 打算画一束花送给cc。可问题是zkx 发现他并不会画花,但机智的他却发现只要先画一棵五颜六色的树,再把它翻转180 度就是一株漂亮的花了!zkx 决定用p 种颜色花这棵树。但是一个节点一个节点画太慢了,于是zkx 决定执行如下q 次操作:1: 选取某种颜色,为c,并且选定一个数字k2: 将每个颜色为c 的叶子节点下面从左向右依次接上颜色为a1; a2; ::; a
2016-11-11 15:19:05
274
转载 线段树
题意是有一排花。 每朵花要开需要浇pi的水,每天stalin会给一段区间【l,r】浇c的水,给q个询问,每个询问问某朵花开花的时间。一眼瞄去总感觉是个可持久化之类的乱搞数据结构题。但是看了题解发现只是一个简单的区间加减。只要维护一个区间min就可以知道有没有往这个节点查询的必要。蒟蒻数据结构真的弱啊。区间更改都已经不会写了,惨啊。。。‘#include #define N 500010
2016-11-11 15:10:44
317
转载 poj2688
bfs 先求出机器人到每个垃圾和各个垃圾之间的距离然后dfs来求tsp问题 #include #include #include #include #include using namespace std; char mp[50][50]; int dis[50][50]; int vis
2016-11-10 20:36:13
357
转载 poj2044
只要记录4个顶点的不下雨天数还是很妙的#include#includeint DAY[367];bool mark[366][10][8][8][8][8];int ys[12] = {0 ,1 ,2 ,3 ,0 ,4 ,5 ,6 ,0 ,7 ,8 ,9};int dir[9][2] = {0 ,0 ,0 ,1 ,0 ,-1 ,1 ,0 ,-1 ,0 ,0 ,2 ,0 ,-2 ,
2016-11-10 20:32:20
580
转载 poj1475
嵌套式bfs 感觉算是一道比较难的爆搜#include#include#include#includeusing namespace std;#define MAXN 25 int dir[4][2] = {-1, 0, 0, -1, 1, 0, 0, 1};int vis_box[MAXN][MAXN], vis_player[MAXN][MAXN];char map[MA
2016-11-10 20:28:37
514
转载 poj3635
非常好的bfs dp题 #include #include #include #include #include #define MAXN 1005 #define MAXM 100005 #define INF 1000000000 using namespace std;
2016-11-10 20:26:55
562
转载 poj1324
存宽搜状态的四进制方法还是非常好的呀#include#include#includeusing namespace std;int dir[4][2]={-1,0,0,1,1,0,0,-1};bool mark[21][21][1<<14];int n,m,l;struct node{ short x,y,t; short state; }a,b,qu[1
2016-11-10 20:23:35
669
转载 poj2488
字典序最小只要把方向顺序搞一搞就好了#include #include #include #include using namespace std;const int maxn = 30;bool vis[maxn][maxn], flag;int dx[] = { -1, 1, -2, 2, -2, 2, -1, 1 }, dy[] = { -2, -2, -1, -1,
2016-11-10 20:21:29
321
转载 爆搜不解释poj3009
#include#include#define MAX 21int map[MAX][MAX] ;int h, w , min = INT_MAX ;//第一个要注意的就是坐标了,不能习惯性地去认为。int sx , sy , ex, ey ; //记录开始坐标和结束坐标int d[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};void init()
2016-11-10 20:19:28
283
转载 乱hash的功力
嵌套【题目背景】话说 LZH最近有一笔和小 最近有一笔和小 C进行的大交易, 但是由于出现了一些重失误进行的大交易, 但是由于出现了一些重失误使得后来他的养殖场都难以负荷 T与 G的个体圈养,这样惨痛经历足以告诫 后人,不要做一个黑心商贩。【问题描述】黑心商贩 LZH最近又购进了一批新商品,还些奇怪的袋子。 最近又购进了一批新商品,还些奇怪的袋子。由于某些不可告人的原因, LZ
2016-11-10 15:39:43
215
原创 爸爸能说什么。
精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战【题目背景】《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼
2016-11-10 14:56:42
316
原创 floodfill
高兴的 高兴的 TG【题目背景】黑心商贩 LZH最近研究出了两种新生物 最近研究出了两种新生物 WBT(简称‘ T’)和 ’)和 GNABYAG(简称‘ (简称‘ G’),这两种生物很奇怪,当见到自己的同类时会变得不高兴。由 ’),这两种生物很奇怪,当见到自己的同类时会变得不高兴。由 ’),这两种生物很奇怪,当见到自己的同类时会变得不高兴。由 ’),这两种生物很奇怪,当见到自己的同类时会变
2016-11-10 14:50:26
273
原创 妙啊
先贴一下自己的10分钟30分暴力。。。#include #include #include #include#include #include #include #include #include #include#include#define pb push_back #define forup(i,a,b) for(int i=(a
2016-11-09 14:52:30
222
原创 呵呵。。。
记录一下端点间直接路径,然后跑最短路#include #include #include #include #include #include #include #include #include #include #include #include #define pb push_back #define
2016-11-09 14:46:08
230
原创 乱搞题
stl乱搞n(logn)^3,莫名其妙的过了#include #include #include #include #include #include #include #include #include #include #include#include#define pb push_back #define forup
2016-11-09 14:41:56
304
原创 抽屉。
Description上了大学之后,小W和小Z一起报了一门水课,在做作业时遇到了问题。 有一个长度为 n 的数列{ai},为一列树木的美观值。 现在有m 次询问,每次给出三个数l,r和P, 询问对于所有的l (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值。Input第一行为两个正整数n和m,表示数列的长度和询问的个数。
2016-11-08 14:32:00
401
原创 乱搞hash
优美的hash其实这题还有各种位运算乱搞做法还有什么开多次反复读入,,。然而我还是决定用这个最精美的写法#includeusing namespace std;int n,x,t,a[1017],q[10];int main(){ int md=1007; scanf("%d",&n); for (int i=1;i<=n*2;i++)
2016-11-08 14:27:33
257
原创 lis
首先显然x#include #include #include #include #include #include #include #include #include #include #include#define pb push_back #define forup(i,a,b) for(int i=(a);i<=(b);i
2016-11-07 16:18:01
284
原创 dfs序列 的lis
1.改造二叉树【题目描述】小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树。通常子结点被称作“左孩子”和“右孩子”。二叉树被用作二叉搜索树和二叉堆。随后他又和他人讨论起了二叉搜索树。什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树。设key[p]表示结点p上的数值。对于其中的每个结点p,若其存在左孩子lch,则key[p]>key[lch];
2016-11-02 16:27:20
423
转载 st表
2.数字对【题目描述】小H是个善于思考的学生,现在她又在思考一个有关序列的问题。她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 这个特殊区间满足,存在一个k(L 小H想知道序列中所有特殊区间的最大价值是多少,而有多少个这样的区间呢?这些区间又分别是哪些呢?你能帮助她吧。 【输入格式】 第一行,一个整数n. 第二
2016-11-02 13:45:42
426
原创 洛谷小题
题目背景本题开O2优化,请注意常数题目描述博艾市除了有海底高铁连接中国大陆、台湾与日本,市区里也有很成熟的轨道交通系统。我们可以认为博艾地铁系统是一个无向连通图。博艾有N个地铁站,同时有M小段地铁连接两个不同的站。地铁计价方式很简单。从A站到B站,每经过一小段铁路(连接直接相邻的两个点的一条边),就要收取1博艾元。也就是说,从A站到B站,选择的路径不一样,要价也会不同。我们认为
2016-11-02 08:12:13
383
原创 最近一些错误
1 关于set删除的一些坑点 multiset 删除如果删除具体值的话。会把所有这个值都删除,所以如果你只想删除一个的话你需要写 tree.erase(tree.find(x)) 然后就是那个神奇的迭代器失效 for(set::iterator i=G[x].begin();i!=G[x].end();)//遍历连出去的每个点 { int u=*i; if(!fla
2016-11-01 21:41:59
230
原创 又tm的数学题
我这种数学渣渣。。。莫名发现好像就是直接相乘的结果。。。(要是在考场上我绝壁直接用这个结论了,但是作为一个刚刚学了数学归纳法的沙茶。。。我决定证明一下。。。)1 两个数a,b 显然1/a(a+b)+1/b(a+b) 通分一下显然就是a*b2 三个数字 我们枚举最后一个数字 则为1/ab(a+b+c)+1/bc(a+b+c)+1/ac(a+b+c) 然后一样通分一下就=a*b*c了
2016-11-01 18:04:48
282
原创 蜜汁dp
由于初中玩泥巴。到现在好像都不是很懂泛化背包那一套理论,但是某位大爷教了我一个很迷的dfs序dp....代码还是非常简单的。但是这里的f[i][j]表示的却是正在考虑i节点,已经用掉了j个节点。。。(这句话我也思考了很久,结论是这个正在考虑确实很玄妙,,,首先i号节点肯定是没选,但是他又肯定是要值得去被考虑的。这句话还是看了代码自己领悟吧。。鬼畜的dp状态可以简化一下本来分类讨论到欲仙欲死的题
2016-11-01 12:50:34
305
原创 eee
一开始想二分一下什么的。就是没想到应该用最小生成树,感觉自己对最小生成树的许多性质还是不是掌握得很到位。任意两点间最小的最大值一定是最小生成树的最大值(怎么感觉自己的表述这么别扭。。。) 所以我们先随便搞一棵最小生成树(似乎是因为最小生成树形态都一样(不知道在哪看到这么句奇怪的话)然后再去找其他边取min就可以啦)树剖搞一搞。。。#include#include#include#includ
2016-10-31 19:42:56
324
原创 怒被卡常
被卡常的没有一丝丝防备。。。要ac可以试着特判一下1 sum之类的。。。#include #include #include #include #include #include #include #include #include#include #define pb push_back #define forup(i,a,b) for(i
2016-10-31 18:55:42
262
原创 再次数学题
给定一个由小写字母组成的字符串,寻找包含“agnus”(羔羊)的子串的个数。注意:当且仅当两个子串的起始位置和终点不同时,这两个子串属于不同的子串。 输入格式:只有一个字符串,表示题中所述的字符串。 输出格式:仅一个数字,表示满足题意的子串个数。 样例输入:agnusbgnus 样例
2016-10-31 18:48:36
339
转载 自己编码。。。不会
以前没有做过自己编码的数位dp..涨了点姿势。。发出来慢慢膜在又一次消灭林登·万的战斗中,指挥官moreD缴获了一个神奇的盒子。盒子异常的坚固,以至于完全无法摧毁,唯一打开的方式是通过盒上的密码锁。 经过仔细的调查,研究人员一致认为这个盒子中隐藏了林登·万和他的弟弟林登·图的秘密。然而moreD使用了许多办法,都没能打开这个盒子。最后只好将这个盒子封存在了仓库的底层。事情并没有
2016-10-31 18:35:02
298
原创 最短路
经过努力,LCJ终于获得了一个带薪假期。他准备要在N个城市中挑选若干个进行旅游,其中有K个城市他是一定要去的。然而他英(qi)明(guai)的上司KID向他提出了一个要求,因为经费的问题,他的旅行路线必须是某两个城市之间的一条最短路。现在LCJ就要在这N个城市之间的道路找到这样一条路线:它是一条某两个城市之间的最短路,经过了K个特殊的城市,在满足条件的路线中,找到最短的一条。 类似于树直径的做
2016-10-31 18:31:35
284
原创 抽屉原理?
LCJ报名参加了一个特殊的电视问答节目。这个节目共有n个问题,每回答正确1题,LCJ就会获得1分,而每当LCJ连续答对k题,那么他的现有得分乘以2,注意答对第K题后,是先加1分到总分中,再把总分乘以2,此时连续答对题目计数器会清零。现在LCJ成功对了m题,他想知道他的最小得分。因为这个数字可能很大,你只需要输出这个数对1,000,000,009取模的结果即可。 输入格式:
2016-10-31 18:27:48
356
原创 树上乱搞
想到其实只要收尾搞一搞其实就很水了。 #include #include #include #define fo(i,a,b) for(int i=a;i<=b;i++) #define N 101000 using namespace std; int n,tot=0,dfn[N],d[N],f[N
2016-10-31 18:25:03
311
原创 乱搞
对于一个数字序列。a1~n判断是否任意一个连续子序列都存在一个数字只出现了一次 ai非常扯犊子的题目.这题看了思路其实很简单。。。但是为什么要双向同时查找呢。据说这就相当于。启发式合并的逆过程所以就nlogn了。。我不会告诉你其实每次随机一边开始扫也是一样的复杂度。。。#include #include #include #include #include
2016-10-31 18:10:17
290
转载 bzoj3622
显然蒟蒻是抄袭别人的。。。 #include #include #include #include #define M 2020 #define MOD 1000000009 using namespace std; int n,k,s; int a[M],b[M],next[M];
2016-10-31 18:01:45
250
原创 自己编码
在又一次消灭林登·万的战斗中,指挥官moreD缴获了一个神奇的盒子。盒子异常的坚固,以至于完全无法摧毁,唯一打开的方式是通过盒上的密码锁。 经过仔细的调查,研究人员一致认为这个盒子中隐藏了林登·万和他的弟弟林登·图的秘密。然而moreD使用了许多办法,都没能打开这个盒子。最后只好将这个盒子封存在了仓库的底层。事情并没有结束。moreD之所以没能打开这个盒子,是因为老牌的调查员/邪教徒LCJ隐瞒
2016-10-27 19:55:11
394
原创 noip2015 day2 t3
先二分 可行的答案mid 找到所有比mid大的路线,然后用一种叫什么差分的东西搞一搞可以做出每个点要被几种不同的路径走过。具体看代码吧。 #include #include #include #include #include #include #include #include #include #define pb push_back
2016-10-27 19:44:36
466
转载 草泥马的斗地主
#include #includeusing namespace std;int n,t,s[15];int ans,a,b;int min(int a,int b){return a>b?b:a;}void dfs(int now){ if(now>ans) return; int s1,s2,s3,s4; s1=s2=s3=s4=0; for(int
2016-10-27 19:41:57
316
转载 bzoj3144
由于本蒟蒻看不懂题目。。。。所以只是知道了个#include#include#include#include#include#include#include#include#include#include#include#define rad 100000000#define inf 1000000000#define ll long long
2016-09-12 19:55:13
371
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人