3 Transcendence_magia

尚未进行身份认证

人但有追求,世界亦会让路。

等级
TA的排名 6k+

bzoj3341: [Ceoi2013]adriatic 记忆化搜索

题意:给你一个矩阵,上面有一些点,两个点之间能直接互相到达保证两个点的坐标一定严格遵从相同的大小性(ax<bx,ay<by)||(ax>bx,ay>by)(ax<bx,ay<by)||(ax>bx,ay>by),输出每一个点到所有店的最短路径之和。n<=250000.矩阵长宽<=2500.一开始还以为是什么奇怪的扫描线之类的,或者cdq。。想了想不大可能啊,性质不是很符合,然后不大会了。。考场

2017-12-19 16:33:33

Atcoder Regular contest 085F NRE 线段树+DP

题意:给你两个序列,a全部为0,b给出,给出一些区间,可以把a上的这些区间变为全1,要求操作以后两个序列对应位置不相同的个数最小,n<=2e5.说实话这种区间操作很容易想到线段树,但是我没想到DP,水了水了。。主要还是题目的模型没化出来吧,直接做其实是不可做的。。把(ai,bi)看成是一个数对,那么答案其实就是(1,0)和(0,1)的数量,也就相当于(0,1)+(0/1,0)-(0,0)

2017-12-07 17:11:44

bzoj3580 冒泡排序 模拟

题意:模拟一个序列的冒泡排序,交换k次以后的序列,n<=1e6,交换次数<=10^12。感觉这题虽然是模拟,但是并不简单。。可能是我水了。就按照题目给出的代码来模拟。首先二分出外层的循环次数,然后剩下的就是内层的了,内层的由于次数<=1e6所以直接模拟即可,细节看代码吧。很久没打题啥都不会了,只能看题解。。#include<cstdio>#include<algorithm>#inc

2017-12-05 18:04:54

NOIP2017提高组 Day2T2宝藏 状压DP

题目就不说了吧。。搜索好像也能过,不过是启发式才行。。何况比赛打得也是状压。。其实不算很难吧,但是我比较菜所以挂了。总是想着如何枚举,但是这题直接枚举转移的话好像不大可做。所以预处理出两个状态之间的转移代价,即w[s1,s2]表示从s1转移到s2的代价,保证s1&s2==0,即s1与s2不相交。然后直接转移就好了,复杂度是3^n*n^2,但是用枚举子集转移的方法可以去除冗余状态,

2017-11-21 15:26:59

bzoj3706反色刷 欧拉图+并查集(欧拉图性质简介)

题意:一个无向图,每条边有黑白两种颜色,要求用最少的反色刷使得所有边变为白色,注意刷子会回到出发点。明显欧拉回路,注意到欧拉回路的性质,即无向图任意点的点数不能使奇数。那么我们用并查集维护每个连通块内黑色边的数量以及他们的度数,用桶存起来。一个基本的维护。#include<cstdio>#include<algorithm>#include<cstring>#definefo(i,a,b

2017-11-10 15:17:40

bzoj1833[ZJOI2010]count 数字计数 数位DP

题意:求l,r中0-9各个数字的出现次数。好像是数位DP经典题。。设f[i][j][k]表示做到第i位,当前计算数字j,前i-1位已经出现的次数为k的总出现次数。直接记忆化搜索即可,注意一下前导0.#include<cstdio>#include<cstring>#include<algorithm>#definefo(i,a,b)for(inti=a;i<=b;i++)#defi

2017-11-10 12:33:30

51nod1232 完美数 数位DP

如果一个数能够被组成它的各个非0数字整除,则称它是完美数。例如:1-9都是完美数,10,11,12,101都是完美数,但是13就不是完美数(因为13不能被数字3整除)。现在给定正整数x,y,求x和y之间(包含x和y的闭区间)共有多少完美数。一个数能整除他的所有位上的数,也就是说要整除所有位置上的数字的lcm。那么设f[i][j][k]表示做到第i位,模2520意义下数字为j,lcm为第k个的

2017-11-10 10:21:18

Atcoder Regular Contest 084

题意:给出一个数k,求k的倍数中的一个数,使得这个数的数位和最小。k<=1e5.感觉做这题智商被碾压了,完全想不到spfa的做法,比赛的时候打数位dp打到倦生都过不去。。先讲spfa做法:从1开始,向x+1连边,代价为数位差,也就是1,或者向x*10,代价为0,注意是在%k意义下,那么答案就是dis[0]+1,即到达k的倍数中最小的路径。#include<cstdio>#include<c

2017-11-07 22:00:38

bzoj3192 [JLOI2013]删除物品 树状数组

题意:箱子再分配问题需要解决如下问题:(1)一共有N个物品,堆成M堆。(2)所有物品都是一样的,但是它们有不同的优先级。(3)你只能够移动某堆中位于顶端的物品。(4)你可以把任意一堆中位于顶端的物品移动到其它某堆的顶端。若此物品是当前所有物品中优先级最高的,可以直接将之删除而不用移动。(5)求出将所有物品删除所需的最小步数。删除操作不计入步数之中。(6)只是一个比较难解

2017-11-07 20:45:54

bzoj2109 [Noi2010]Plane 航空管制 贪心 拓补排序

题意:定义一个航班的起飞序号为该航班在起飞序列中的位置,即是第几个起飞的航班。起飞序列还存在两类限制条件:第一类(最晚起飞时间限制):编号为i的航班起飞序号不得超过ki;第二类(相对起飞顺序限制):存在一些相对起飞顺序限制(a,b),表示航班a的起飞时间必须早于航班b。求每个飞机在可行的起飞序列中最小的那个数。拓补很显然,但是直接连边比较难以处理第二种限制,于是我们显然想

2017-11-06 17:21:05

bzoj4337: BJOI2015 树的同构 树hash

题意:给出n棵树,问有哪些树是同构的。注意到树很多,直接像普通的树hash是行不通的,因为哪怕是自然溢出做模数的冲突概率也极大,正确的做法是对于不同的子树使用不同的base去做hash,就可以将冲突的概率降到最低。#include<cstdio>#include<algorithm>#include<cstring>#definefo(i,a,b)for(inti=a;i<=b;i+

2017-11-06 15:38:15

JZOJ5457. 【NOIP2017提高A组冲刺11.6】项链

题意:nodgd的粉丝太多了,每天都会有很多人排队要签名。今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记

2017-11-06 15:34:54

bzoj2258: pku2758 Checking the Text 文本校对 hash+二分

题意:给你一段文本要求比对从文本中某两个位置开始能匹配的最大长度是多少。可以插入字符。一开始不看范围感觉这题巨难,死刚SAM搞不出来,然后看看范围感觉自己被逗了。。hash+二分,记录一下字符位置就好了,由于插入很少暴力更新hash数组即可。自然溢出。#include<cstdio>#include<algorithm>#include<cstring>#definefo(i

2017-11-05 21:52:41

bzoj3629[JLOI2014]聪明的燕姿 搜索+筛法

题意:给出一个数n,求问有多少个数的正约数之和为n。非常好(强)的题,一开始并没有想到。注意到正约数之和,设n,那么n可以表示为:n=ap11∗ap22∗...∗apnnn=a_1^{p_1}*a_2^{p_2}*...*a_n^{p_n}那么n的正约数之和m=(1+a11+a21+..ap11)∗(1+a12+a22+..ap22)∗...m=(1+a_1^1+a_1^2+..a_

2017-11-05 21:06:32

JZOJ5454. 【NOIP2017提高A组冲刺11.5】仔细的检查 树hash

Descriptionnodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点��0在第一幅图中编号为��1,在第二副图中编号为��2。于是,nodgd决定检查一下他画出的两棵树到底是不是一样的。nodgd已经给每棵树的节点都从1到��进行了编号,即每棵树有��个

2017-11-05 16:51:05

bzoj1567[JSOI2008]Blue Mary的战役地图 二分+矩阵hash

题意:给出两个矩阵,求最大重合。做出两个矩阵的hash以后二分最大正方形的边长,基础hash。模数不好设,用自然溢出就好。#include<cstdio>#include<algorithm>#include<cstring>#definefo(i,a,b)for(inti=a;i<=b;i++)#definefd(i,a,b)for(inti=a;i>=b;i--)u

2017-11-03 20:31:34

bzoj3721PA2014 Final Bazarek 贪心

题意:有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。思路巧妙的贪心,由于判断一开始写错了导致没有1A。每次直接选取最大的k个,然后如果是偶数的话就把k个中最小的偶数替换成后面最大的奇数或者把k个中最小的奇数换成后面最大的偶数,因为只有奇数才能改变奇偶性,所以正确性显然。#include<cstdio>#include<algorithm>#include<cstring

2017-11-03 14:20:07

JZOJ5442【NOIP2017提高A组冲刺11.1】荒诞 三进制状压+欧拉序

题意:我有一个n个点,m条边的无向图,第i个点建立一个旅游站点的费用是c_i。特别地,这张图中的任意两点间不存在节点数超过10的简单路径。为了把一切都做得完善,为了使我感到不那么孤独,我想要建造一些旅游站点使得每个点要么建立了旅游站点,要么与它有边直接相连的点里至少有一个点建立了旅游站点。我还希望这个建造方案总花费尽量少。请求出这个花费。czy大爷出的好题。考场上有正解方向的想法

2017-11-01 22:17:35

JZOJ5441. 【NOIP2017提高A组冲刺11.1】序列 启发式搜索+迭代深搜

题意:给定一个1~n的排列x,每次你可以将x1~xi翻转。你需要求出将序列变为升序的最小操作次数。有多组数据。n<=25吃了搜索的亏,表示估价函数这玩意儿碰都没碰过,A*也是好久以前才做过的。。考试的时候打了个搜索还错了,没脸见人了。。有两个优化。第一个就是估价函数,这个必须加上,每次交换的时候,我们假设当前已经交换了x步,然后枚举答案,估价函数g为接下来要把当前序列变为升序的期望步

2017-11-01 16:46:54

bzoj1097[POI2007]旅游景点atr spfa+状压DP

题意:给出一个图,要求一定经过一些点,而且经过顺序有要求,点的范围是2到k+1,问最短路径。这题卡常卡的我蛋都碎了都没卡过,最后懒得卡了。其实很简单的一道题目如果不卡常的话,先对于1..k+1跑spfa以后,把题目要求的遍历顺序加入状态中,直接转移就可以了,挺显然的。代码:(TLE)#include<cstdio>#include<algorithm>#include<cstring>

2017-11-01 14:32:55

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!