- 博客(181)
- 收藏
- 关注
原创 bzoj 2435 道路修建
这真的是noi题吗?orz dfs能过的柏神。(我的代码并不能通过,但是是对的)考场上还是老老实实bfs吧 #include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 1000010using namespac
2015-11-16 10:37:38 379
原创 bzoj 1562 变换序列
匈牙利裸题,注意加边的顺序即可 #include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 20010using namespace std;struct yts { int x,t,ne;} e[2*N];int vis[N
2015-11-16 10:37:36 409
原创 bzoj 1509 逃学的小孩
求出树的直径,可以证明那两个同学家一定分别是直径上的两个点。枚举点即可ps 某些大牛说可以两遍bfs求直径,方法是第一遍求任意一个点的最远点,第二遍求这一个点的最远点,就一定是直径。然而我并没有用。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define
2015-11-16 10:37:33 383
原创 bzoj 3728 zarovik 买灯泡
贪心,每个拥有的灯泡去匹配它能供电的最大灯泡,这样就最大化了换每个灯泡的改变值。#include#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 500010using namespace std;struct cm
2015-11-16 10:37:30 286
原创 bzoj 1061 志愿者招募
明显的线性规划网络流,据说当时考场上就1个人A了?a[i][j]表示第i种志愿者第j天是否工作p[i]表示第i种志愿者的人数sigma(a[i][x]*p[i])>=need[x] 补充函数y[i],则sigma(a[i][x]*p[i])=need[x]+y[x]差分,start[i]表示第i种志愿者开始工作的时间,end[i]表示第i种志愿者结束工作的时间sigma(p[i]*(start
2015-11-16 10:37:28 383
原创 bzoj 4001 概率论
令f[i]表示i个节点的二叉树种数,则f[x]=sigma(i=0->i-1)(f[i]*f[x-i-1])令g[i]表示i个节点的二叉树的各种方案的叶子节点总数和,则g[x]=2*sigma(i=0->x-1)g[i]*f[x-i-1]打表找规律具体的,找f[i]/g[i]的规律,将f[i]/g[i]约分之后通分成分子分母分别单调递增,规律就很显然了。代码没什么可贴的
2015-11-16 10:37:25 356
原创 bzoj 4034 t2
带子树维护的树剖要用dfs序,带子节点维护的树剖要用bfs序,不能再混了!!!#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 100010using namespace std;struct yts { int x
2015-11-16 10:37:22 293
原创 bzoj 3624 免费道路
第一遍只加水泥路跑kruscal,找出必须修成石子路的。第二遍kruscal把这些修石子路的修好,然后随便修剩下的路,注意随时判断无解的情况#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 20010#define
2015-11-16 10:37:20 494
原创 bzoj 4029 定价|模拟
直接模拟定价过程,如果这个荒谬程度存在合法解就出解,否则继续枚举#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define Nusing namespace std;ll mi[20];int main(){ mi[1]=1; f
2015-11-16 10:37:17 324
原创 bzoj 1034 泡泡堂|贪心
本来一看题上的图片以为是一道大模拟,谁知和泡泡堂一点关系没有加了平局的田忌赛马问题。如果能赢,就用最弱的打最弱的,最强的打最强的,如果都赢不了,就让最弱的去打最强的,能怎么样就怎么样。可以证明这样贪心是对的1、用最弱的去赢最弱的显然没有问题2、用最强的去赢最强的也很好,否则这些也干不了别的3、用最弱的去打最强的,在最强的打最强的之后,留下的是尽量弱的,也就最大化了平局的可能,而
2015-11-16 10:37:14 487
原创 bzoj 1833 数字计数|数位dp
又一类数位dp模板,直接贴代码#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define Nusing namespace std;ll mi[20];struct data { ll a[15];} f[20][15];data
2015-11-16 10:37:11 334
原创 bzoj 2823 信号塔|计算几何|随机增量法
经典的最小圆覆盖问题,推公式略恶心。#include#include#include#include#include #define md#define ll long long#define inf (int) 1e9#define eps 1e-6#define N 500010using namespace std;struct point { double x,y;} p[N];int f
2015-11-16 10:37:09 441
原创 bzoj 1112 砖块|中位数|set
首先一个结论是选定的k个高度一定是他们的中位数,证明见白书P6然后我们可以枚举每个区间,用set维护区间中位数。注意multiset的删除操作是把所有这个值的都删去。所以又用了一个map注意查询时如果集合为空的处理p党是怎么想的这道题?#include#include#include#include#include#include#define md#define ll long
2015-11-16 10:37:06 479
原创 bzoj 3687 简单题|bitset
f[i]表示和为i的子集是否有奇数个。那么fbitset好优美 #include#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define Nusing namespace std;bitset f;int main(){
2015-11-16 10:37:03 363
原创 bzoj 4010 菜肴制作|拓扑排序|priority_queue|解题思想
使编号小的尽量早制作=>反向序列不到万不得已不写小的数=>a早于b就b向a连边,将入度为0的加入优先队列,编号大的优先出队,得出反向序列。反向寻求答案的思想 #include#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8
2015-11-16 10:37:01 458
原创 bzoj 1029 建筑抢修|贪心|priority_queue
将所有的建筑按照最晚完成时间排序。对于一个建筑,如果当前时间now开始修复能够完成,那么就开始修复,否则找到维修序列中所需时间最大的项目,如果当前项目的修复时间小于那个项目,就将那个项目替换为这个项目。贪心的正确性显然,这样操作会使修复时间最小,也就为修复更多建筑提供了可能复习了一下stl #include#include#include#include#include#includ
2015-11-16 10:36:58 664
原创 bzoj 1020 安全的航线|计算几何
一道计算几何的神题,复(xue)习了各种计算几何的基础知识先上题解将航线上的每一段线段加入循环队列对于每一个线段l,r,求出到l最近的点p1和到r最近的点p2.在线段l,r内找出和p1,p2长度相等的点p,设所有陆地与p的最近点为p3,那么线段[l,p]和[p,r]的答案不会超过max(len(l,p1),len(p,p3),len(r,p2)),也就是如果这个值小于当前答案的话,线段上任意一点不
2015-11-16 10:36:56 641
原创 bzoj 1026 windy数|数位dp
终于明白数位dp了,就是一个模板,直接贴代码 #include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define Nusing namespace std;int f[15][15][2];int a[15];char st[15
2015-11-16 10:36:53 378
原创 bzoj 3576 江南乐 |sg函数|根号分块
将x个石子分成m堆=>x%m 堆 x/m+1m-x%m堆 x/m出现了熟悉的x/m,于是想到分块而x%m,m-x%m的奇偶性最多只会有两种,且处在块的第一个第二个,于是乎只要枚举i,i+1的情况即可记忆化搜索会更快啦然而对于每一个sg的计算要单独开一个vis数组。 #include#include#include#include#include #define md#d
2015-11-16 10:36:51 1110
原创 bzoj 1018 堵塞的交通|线段树维护连通性
很久之前听泽神说过这道题,今天终于下定决心写了维护两个横,两个竖,两个斜的连通性h[2],s[2],x[2]。转移如下表(a为左子树,b为右子树,t为目标子树) 查询时要考虑绕了一圈的情况,即[1,l][l,r][r,n]三个区间的连通性最后竟然是close的时候把边赋成了11018: [SHOI2008]堵塞的交通trafficTime Limit: 3 Sec Memor
2015-11-16 10:36:48 560
原创 第一篇博文,总结这一年的比赛
看到学校里各大神犇 wyw,zzb,dms开了博客之后,蒟蒻我也忍不住了(我会说一个半月前在东营我就想开博客了吗?) noip2014 ——高中首战 一场上古时期的比赛。那时的我真的好弱,连bird的正解都想不到,还写挂了35分……总体发挥还可以,没什么遗憾的。 sdoi2015 round1 day1:t1 想到正解又把自己否定了,30min+敲完暴力。 看第
2015-11-16 10:36:45 869
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人