自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qwb的博客

ACing

  • 博客(372)
  • 资源 (6)
  • 收藏
  • 关注

原创 01染色 codeforces663C Graph Coloring

传送门:点击打开链接题意:一个无向图中,每条边可能是0或者1。有一种对节点u的操作,操作时把节点u连接的所有边的权值0变1,1变0.现在要把所有边的权值边成相等的,问最少的操作步数,并打印方案。思路:如果确定最后边的颜色了,并对所有的连通块中,确定了一个节点的颜色,那么整个连通块的操作节点就是唯一确定的了。打印方案比较麻烦,,慢慢debug。。#include #include

2016-04-24 01:16:15 1004

原创 暴搜 bnu51645 ACM Battle

传送门:点击打开链接题意:一个图,选点,覆盖所有的边。(n 思路:本身这是一道NPC问题,但是因为最多只能选10个点,所以我们可以暴搜。重点是暴搜的方法,如果是按照点去暴搜的话,复杂度还是会爆炸。我们考虑到,每一条边的两个节点中,至少有一个节点会被覆盖。所以我们按照这个去暴搜,复杂度就只有O(2^10*m),十分的神奇!#include #include #includ

2016-04-23 17:42:40 647

原创 离散化+线段树 codefores555C Case of Chocolate

传送门:点击打开链接题意:阶梯形的巧克力,每次选择边缘的一个格子,然后向上吃或者向左吃,直到边界或者空白位置停止,吃过的位置之后就是空白。思路:n很大,先把q查询的那些位置离散化一下,注意x+1和y+1也需要离散化一下。之后y会限制后来的x,x会限制后来的y,搞两个分开的线段树分别维护x和y就行了还要弄个vis来判断某一行或某一列是否已经放过,就ok了总的来说只要想清楚了细节,

2016-04-18 19:48:21 425

原创 容斥定理 njust1923 triple

传送门:点击打开链接题意:给n,m,求1~n中选3个不相等的数出来,3个数的最大公约数等于m的组合数有多少。(n, m 思路:我们很容易通过组合,可以求出,3个数的最大公约数是i的倍数的组合数,即C(n/i, 3)但是,我们需要的是最大公约数是m的组合数,所以我们先通过求出m的倍数的,然后把其他倍数的个数减去就行了所以我们倒着做就ok了,复杂度O(nlogn)#include

2016-04-18 18:44:16 446

原创 无向图强连通分量缩点+DFS序 codeforces555E Case of Computer Network

传送门:点击打开链接题意:n个点,m条边的无向图,点不一定都连通,有q个查询,每个查询有u和v。现在要把m条边从无向边变成有向边,并要求每个查询的u能通过后来的有向边到达v。问是否存在这样的构造。所有数都思路:这道题写起来太爽了!首先我们很容易想到通过无向图强连通分量缩点,缩点完后就只剩下了一棵树(或者森林)。我们接下来考虑不合法的情况,绝对有一节点会满足这个要求:对于节点rt,u

2016-04-18 13:39:49 1162

原创 表达式树+多项式模拟 fzu2215 Simple Polynomial Problem

传送门:点击打开链接题意:化简多项式。思路:先写个结构体,把多项式的乘法和加法重载好。然后直接套后缀表达式啊,或者表达式树啊,或者用栈写表达式解析啊,都是随意的下面这个是表达式树的写法。有一个要注意的地方是,在函数里面开数组,也是属于栈的空间,所以用G++提交的时候,要注意一下扩栈。#include #include #include #include #inclu

2016-04-14 18:09:59 691

原创 期望 zoj3929 Deque and Balls

传送门:点击打开链接题意:一个双端队列,现在有n个数,按顺序插入到双端队列中,可能插在左端,也有可能右端,概率相等。最后插完n个数后,如果存在A[i]>A[i+1],那么权值+1。求最后权值的期望*2^n%1e9+7思路:求期望最常用的有3种方法。1.期望dp方程,通过之前某个位置的期望,推算当前的期望,通常拿上一个状态的期望乘以从那个状态转移到当前状态的概率加上当前的权值。如果没

2016-04-14 12:33:09 492

原创 Hash+折半枚举 51Nod1440 序列分解

传送门:点击打开链接题意:小刀和大刀是双胞胎兄弟。今天他们玩一个有意思的游戏。 大刀给小刀准备了一个长度为n的整数序列。小刀试着把这个序列分解成两个长度为n/2的子序列。这两个子序列必须满足以下两个条件:1.他们不能相互重叠。2.他们要完全一样。如果小刀可以分解成功,大刀会给小刀一些糖果。然而这个问题对于小刀来说太难了。他想请你来帮忙。(n 思路:调整了几天,今天手感好

2016-04-14 10:51:54 755

原创 质数筛 51Nod1441 士兵的数字游戏

传送门:点击打开链接题意:两个士兵正在玩一个游戏,游戏开始的时候,第一个士兵为第二个士兵选一个正整数n。然后第二个士兵要玩尽可能多的轮数。每一轮要选择一个正整数x>1,且n要是x的倍数,然后用n/x去代替n。当n变成1的时候,游戏就结束了,第二个士兵所得的分数就是他玩游戏的轮数。为了使游戏更加有趣,第一个士兵用 a! / b! 来表示n。k!表示把所有1到k的数字乘起来。那么第二个士兵

2016-04-09 22:33:51 569

原创 贪心 51Nod1460 连接小岛

传送门:点击打开链接题意:有n个小岛,每一个小岛是直线型的,他们不相互相交,第i个小岛所占的区间是[li, ri],而且, ri 现在有m条桥,每条桥最多被使用一次,问能否把这些岛连接起来。样例解释:在这个样例中,把第2条桥两个端点放在3和8,把第三条桥两个端点放在7和10,把第一条桥的端点放在10和14。思路:很明显能转换成,问,m个点是否能把区间是否覆盖,一个店只能覆盖一个区间

2016-04-08 22:55:49 655

原创 DFS+dp 51Nod1448 等幂映射

传送门:点击打开链接题意:等幂映射是这样定义的,对于一个映射 g : {1,2,...,n} → {1,2,...,n} ,对于所有的 x∈ {1,2,...,n} , g(g(x))=g(x)始终成立。  f(k)(x) 表示将映射f作用于x上k次的结果。一般的, f(1)(x) = f(x), f(k)(x) = f(f(k−1)(x)) 对于所有的k>1成立。现在给定一个映射 f

2016-04-08 14:04:34 438

原创 前缀和+抽屉定理 51Nod1103 N的倍数

传送门:点击打开链接题意:一个长度为N(例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。思路:以前看过抽屉定理,觉得这个定理废话。但是看到这道题,感觉真的好神!因为只有n个数,如果这n个数中,有其中一个数%n为0,那么肯定是直接输出如果所有的数%n都不为0,那么就可能为1~n-1里的任何一个,但是有n个数。

2016-04-07 23:01:10 1010 1

原创 并查集 hdu3038 How Many Answers Are Wrong

传送门:点击打开链接题意:有Q次操作,每次操作告诉你l,r,s,表示区间[l,r]里的和为s。如果某次操作与之前得到的内容冲突,就无视这次操作,最后输出冲突的操作次数。思路:首先我们可以证明,只有当[l,r]存在多种情况被小区间恰好覆盖时,然后多种情况的小区间之和不相等时,就认为是冲突的。我们能比较容易的想到把l-1,和r去维护并查集,但是如何维护s,是个问题如果按秩合并,我们可以

2016-04-07 22:31:25 344

原创 枚举 51Nod1487 占领资源

传送门:点击打开链接题意:有一个矩形区域被划分为N行M列的网格,每个格子里有一定数量的资源并记录在矩阵val中,坐标(x,y)位置上资源量为val[x][y],其val中每个元素的值为0~9的整数。如果你在某个网格(a,b)上造一座保护塔,那么你可以占领K个网格中的资源,这K个格子分别是(a+dx[1],b+dy[1]),(a+dx[2],b+dy[2]),...,(a+dx[K],b+dy[

2016-04-07 20:18:30 564

原创 二分 51Nod1686 第K大区间

传送门:点击打开链接题意:定义一个区间的值为其众数出现的次数。现给出n个数,求将所有区间的值排序后,第K大的值为多少。二分第k大的数是多少,设为m,之后的check,只需要计算有多少个区间的众数的次数是>=m的即可这里是枚举区间右端点r,然后通过链表来快速找到最靠近右边的左端点l,使得[l,r]中有数字出现了m次,check的复杂度只有O(n)所以总的复杂度O(nlogn)

2016-04-07 20:06:52 867

原创 反素数 51Nod1060 最复杂的数

传送门:点击打开链接题意:把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。思路:原来,这个叫反素数。反素数的详细介绍看这里点击打开链接有了反素数的性质,我们就能DFS搜了#include #include #includ

2016-04-07 19:55:01 1071

原创 差分约束 poj3159 Candies

传送门:点击打开链接题意:有n个未知数,然后m条信息,每条信息有a,b,c,表示xb-xa思路:差分约束,稍微总结了下B-AB的边权值为C求B-A最大值转换为求A->B最短路求B-A最小值转换为求B->A最短路并取负号如果存在负环,则无解如果不存在最短路,则无数解#include #include #include #include #include #i

2016-04-05 19:41:01 311

原创 FFT hdu1402 A * B Problem Plus

传送门:点击打开链接题意:求大数乘法思路:fft套模板#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define fuck(x) c

2016-04-05 15:42:03 513

原创 FFT uoj34 多项式乘法

传送门:点击打开链接题意:告诉两个多项式的系数,求多项式乘法后,每个的系数,多项式长度思路:其实就是求卷积。不管了,反正暂时这智商搞不懂fft,先整理出了一套fft的模板,至少会算卷积了,留着应该有用#include #include #include #include #include #include #include #include #include #i

2016-04-05 14:29:48 924

原创 整体二分 hdu5412 CRB and Queries

传送门:点击打开链接题意:两种操作,操作1查询区间第k大,操作2把位置x的值改成y。n,Q思路:整体二分。刚开始以为是在线段树上二分答案,没想到它竟然是对所有的二分答案,还是第一次见到这样的二分方法!说下整体二分的大概思路:首先,按照操作顺序,将所有的查询和修改操作全部加入到数组A中,然后去调用solve函数,L和R其实是数组A的指针,l和r是二分答案的范围之后,取l和r的中点

2016-03-31 17:40:59 576

原创 KMP+dp Codeforces346B Lucky Common Subsequence

传送门:点击打开链接题意:告诉你A,B,C,求A和B的最长公共子序列,并且C不是最长公共子序列的子串思路:先求C的Next数组,利用Next数组来完成状态的转移。而且,用KMP来优化的dp,通常都是往后更新的写法。对于打印路径,我们能用DFS来完成,这里有个我觉得很不错的写法,就是直接利用状压,来保存数字,感觉这样可以避免写一个结构体,方便的多然后dp部分,就是在求最长公共子序

2016-03-30 19:02:37 943

原创 最短路 51Nod1693 水群

传送门:点击打开链接题意:刚开始只有1个表情,现在有3种操作。操作1.复制,操作2.粘贴,操作3.退格问要到恰好n个表情,需要的最少的操作数。思路:这题的思路非常神首先,我们考虑到把这道题转换成图论,i与i-1之间连一条边,费用为1,i与i*k之间连一条边,费用为k,然后跑一遍最短路。但是,这里的边数太大了,这里就出现了我们第一个优化,这个优化我觉得值得我们思考。。在连接i

2016-03-30 16:49:54 951

原创 kd树 hdu2966 In case of failure

传送门:点击打开链接题意:给n个点,求对于每个点到最近点的欧几里德距离的平方。思路:看鸟神博客学kd树劲啊点击打开链接kd树其实是暴力树,,真的。。它把一个平面划分成了很多个小平面。每次划分的依据是平面中按x排序的点的中位数或者是按y排序的点的中位数。建树的复杂度是稳定O(nlogn),但是查询就是大暴力了把平面分成很多个小平面后,相当于在平面上搜索剪枝。kd树

2016-03-29 15:43:43 992

原创 强连通分量+缩点 codeforces652E Pursuit For Artifacts

传送门:点击打开链接题意:告诉你一个带权边无向图,边的权值只有0和1,告诉你起点和终点,问是否能使得从起点出发到终点时,路径边权和不等于0,每边最多只允许通过一次。思路:因为"边不能走重复的",往往不能走重复边都可以和强连通分量结合起来。这题我们首先求无向图所有的强连通分量并缩点,对于每一个强连通分量,如果里面有一条边的权值为1,那么最后缩成的点我们也给一个权值1。缩点全部完成后,

2016-03-28 17:12:09 1112

原创 并查集 hdu5652 India and China Origins

传送门:点击打开链接题意:告诉你地图的大小,每年有的地方会长出山峰,问什么时候两端开始不连通的。思路:先到最后一年,就是长出很多山峰时开始。之后相当于把山峰拆掉,所以就是把4个方向的空地用并查集合并,然后判断两端是否已经连通。就这样倒着xjb搞,就能出答案了,注意点细节和输出答案的时间就行了#include #include #include #include #inc

2016-03-27 22:00:19 621

原创 dp hdu5653 xiaoxin and his watermelon candy

传送门:点击打开链接题意:有n个箱子排成一排,有m个炸弹,位置告诉你,现在炸弹的左边伤害和右边伤害可以自己控制,要求 每个炸弹炸的箱子数的累乘,输出答案取log2并乘以1e6思路:直接2for xjb搞就行了,大概就是某个区间里刚好只有一个炸弹时,就是满足的,然后就从前面往后面更新一下#include #include #include #include #include #

2016-03-27 21:48:31 636

原创 线段树+离线 hdu5654 xiaoxin and his watermelon candy

传送门:点击打开链接题意:一个三元组如果满足j=i+1,k=j+1,ai思路:刚开始看错题目了,原来三元组是连续3个,这作为bc最后一题也太水了把。。。先一遍预处理,把连续3个满足条件的找出来,放到另一个数组里排序去重,用这个数组来给三元组哈希,再扫一遍给三元组在之前那个排序好的数组里二分一下得到下标,大概就是哈希一下,用一个数字来表示。之后的查询,其实就是,在区间内,不同的数字有

2016-03-27 21:28:16 705

原创 DFS csu1719 Boggle

传送门:点击打开链接题意:真正的题意是,告诉你一些字符串,然后告诉你很多个字符格子,问这些字符串能否在字符格子中连起来,在格子中对角线也认为是连在一起的。如果格子中的字符是q,其实是代表着qu思路:这题迷之英语,各种猜题意啊,,不过运气好比较早就猜中了,嘿嘿嘿懂题意了后就很简单了,DFS各种搜就行了,因为数据范围比较小#include #include #include #i

2016-03-27 20:31:50 829

原创 二分 csu1712 Refract Facts

传送门:点击打开链接题意:告诉你水的折射率,潜艇的深度,飞机的高度,两个的水平距离之差,求角度思路:设飞机到视线进入水面的那个点的垂线距离为m,然后我们就可以根据折射率,列出表达式。这种题目猜都能大致猜出,应该是有单调性,可以二分的,xjb随便先试试l=m,再试试r=m,总有一个是对的23333要注意输出的是角度,所以要把弧度换算成角度输出#include #include

2016-03-27 20:19:31 658

原创 模拟 csu1711 Kinfolk

传送门:点击打开链接题意:一颗完全二叉树,表示辈分关系,节点从0开始。随便告诉你两个节点,问v节点是u节点的什么关系。思路:顶级模拟题!感谢这道题目,我终于搞懂了各种头衔的含义。。思路大概是先求出u和v到lca的距离,然后就利用这个距离去讨论。刚开始可以写一部分出来,发现规律后就可以直接按规律来写了。#include #include #include #include

2016-03-27 20:14:27 681

原创 线段树+二分 hdu5649 DZY Loves Sorting

传送门:点击打开链接题意:一个n的排列,然后执行Q次操作,每次操作是对某个区间从小到大排序或者是从大到小排序。最后只查询一次,输出第k个位置当前的数。思路:这道题最特别的地方,就是,只查询了1次,因为这个特点也让这道题有了不同寻常的解法。我们可以直接二分第k个位置的数的大小记为m,然后给初始序列处理一下,把小于等于m的记为0,大于m的记为1之后的排序操作就非常简单了,只需要区间修改

2016-03-23 16:27:27 1753

原创 树型dp hdu5647 DZY Loves Connecting

传送门:点击打开链接题意:定义连通集S为,任意一对u,v属于S,u到v的树最短路径经过所有的节点都在S内。求所有这样的连通集大小之和思路:看到维护大小之和,通常还需要维护数量。看了下吉司机的代码写的很简单,只要理解好乘法原理,就很好做了#include #include #include #include #include #include #include #inc

2016-03-23 16:21:05 1242

原创 强连通分量 CCF201509-4 高速公路

传送门:点击打开链接题意:告诉有向图,求互通的城市对数。思路:强连通分量裸题,求出所有的强连通分量,答案就等于sigma s[i]*(s[i]-1)/2,s[i]是每个强连通分量的大小#include #include #include #include #include #include #include #include #include #include #i

2016-03-21 21:51:31 2164

原创 2016年4月CCF计算机软件能力认证模拟试题代码参考

问题描述给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。输出格式输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。样

2016-03-21 21:46:36 7183 3

原创 AC自动机+矩阵快速幂变形 CCF201509-5 最佳文章

传送门:点击打开链接题意: 大概就是告诉你一个字典,字典里字母总个数不超过100,要构造一个长度为m(思路:看数据大小,再根据做题的经验,很容易就想到AC自动机来优化状态,再用矩阵快速幂来优化dp,但是这题很特别。我们先把dp写出来dp[i][j]=max(dp[i-1][j可能的上一个状态])+End[j]i是长度,j是在AC自动机中的节点但是,我们能发现,一般的矩阵快速

2016-03-21 21:37:30 3520 5

原创 KMP+区间dp csu1620 A Cure for the Common Code

传送门:点击打开链接题意:可以把字符串用过括号折叠起来。现在给你原串,问折叠后最短是多少,len思路,首先,我们通过O(n^2)来预处理出每个区间里的最短循环节。之后,我们直接按照区间dp用记忆化搜索去搞就行了。#include #include #include #include #include #include #include #include #inclu

2016-03-18 13:19:58 1179

原创 KMP+hash hdu3746 Cyclic Nacklace

传送门:点击打开链接题意:已知原串,在首或者尾加上一些字符后,变成至少有一个循环节循环2次变成新串思路:我们能很容易的发现,在首添加字母和在尾添加字母效果是一样的,所以我们只考虑在末尾添加首先我们都知道,KMP可以用来求前缀中的最长循环节长度。知道了这个有什么用呢?我们枚举所有的前缀,然后取得循环节的长度w,与此时后面剩下的字符串的长度t去比较如果后面剩下的字符串等于原字符串的

2016-03-17 20:12:28 1138

原创 最小表示法+hash hdu2609 How many

传送门:点击打开链接题意:有n个串,每个串是一个环,如果通过移动环之后能一样,认为是同一种串。问有多少种串。思路:很明显我们首先要把认为是一样的串变成一样的,比如找到这个串的最小表示法,所以这道题的目的就是为了求最小表示法,然后用hash搞一搞排序然后去重,或者是直接插入到set里面取size都是可以的KMP(复杂度O(n))来搞最小表示法暂时还不会,先挖个坑,我这里还有一种通过二分+

2016-03-17 20:05:23 1364

原创 KMP UVALive326 Period

传送门:点击打开链接题意:给一个字符串s,求所有的前缀中是否能能通过一段循环得到,如果能,输出位置和循环的次数,循环次数越小越好。思路:先通过KMP求出Next数组(我的Next数组的写法,是Next[0]=0,这个看个人习惯之后直接判断Next[i] && (i + 1) % (i - Next[i] + 1) == 0就能知道是否可以搞定了详细证明可以去看训练指南,上面讲的很详

2016-03-17 15:57:52 993

原创 给sublime3配置C++(编译,运行,和格式化代码)

这段时间一直在搞Sbulime,以前一直都是用Codeblocks,但是sublime更加轻便下载安装sublime什么的我就不说了,先讲怎么配置MinGW安装好MinGW后,需要修改环境变量,右键我的电脑->属性->高级系统设置->高级->环境变量,然后把MinGW的bin目录,地址加到Path里,如果有多个用分号隔开如果是Win10就直接是下面这个画面了,方便的多之后可

2016-03-16 17:51:42 9749 4

C#八数码游戏实例

C#八数码游戏实例

2016-02-14

C#计算器实例

C#写的计算器实例

2016-02-13

Android 短代码实现 最简易的画板

Android 短代码实现 最简易的画板

2015-09-07

易逍遥模块1.6.ec

逆天http模块,无需处理cookie!(只有跨域才需要保存cookie)

2015-06-13

易语言 skinh破解版

SkinH_EL.dll

2012-08-15

空空如也

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

TA关注的人

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