关闭

Create

题目大意一个序列,有很多询问,每个询问要问区间>=x的数的个数。 现有若干修改操作,区间赋值,每次修改后请你将所有询问得到的答案和输出。颜色段均摊分析颜色段! 可以用set维护颜色段。 然后只需要考虑一个区间全部由x变成y产生代价。 先把询问按x排序做可持久化线段树,然后就很好做。#pragma GCC optimize(2) #include #include<algori...
阅读(36) 评论(0)

神奇的玩具

题意一副无向图,第i条边连接ai和bi。现在你需要选择恰好k个点,对于第i条边,你必须让ai和bi至少一个被选择,如果ai被选择,付出pi的代价,否则付出qi的代价(pi<=qi),求最小代价。搜索可以发现pi是必然代价,qi-pi就是附加代价。 于是产不产生代价只与ai是否没有被选,这方便我们加上最优性剪枝。 一个不选会导致一堆必选。 判掉度数为0和自环,我们可以发现T(n)<=T(n-1)...
阅读(55) 评论(0)

[bzoj4849]Mole Tunnels

题目描述鼹鼠们在底下开凿了n个洞,由n-1条隧道连接,对于任意的i>1,第i个洞都会和第i/2(取下整)个洞间有一条隧 道,第i个洞内还有ci个食物能供最多ci只鼹鼠吃。一共有m只鼹鼠,第i只鼹鼠住在第pi个洞内,一天早晨,前k只 鼹鼠醒来了,而后n-k只鼹鼠均在睡觉,前k只鼹鼠就开始觅食,最终他们都会到达某一个洞,使得所有洞的ci均大 于等于该洞内醒着的鼹鼠个数,而且要求鼹鼠行动路径总长度最...
阅读(133) 评论(0)

三明治

题目描述做法对于每个格子(i,j)设L(i,j)表示先吃靠左边界的格子至少要吃多少格子,R意义类似。 然后你发现L(i,j)>=L(i,j-1)。 于是一行一行做,每行才清空一次标记数组。#include #include #define fo(i,a,b) for(i=a;i=b...
阅读(49) 评论(0)

[LibreOJ β Round]ZQC的树列

题目描述见LOJ。做法显然对于每一段数字,要么可选要么必选。 假如有t个,若必选,则方案为2^t-1,否则为2^t。 因此只有1、2、3就可以构造所有情况。 尝试把n拆分成2^t-1以及2^t的乘积。 这个用dfs即可。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++...
阅读(197) 评论(0)

[CF538D]Weird Chess

题目大意懒得写做法暴力判断哪些走法要封死。 剩余走法都可以当做有效,判断每个应该攻击的位置是否被攻击了。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=100+10,mx=50; bool pd[maxn][maxn],bz[ma...
阅读(53) 评论(0)

[CF538C]Tourist's Notes

题目大意懒得写做法每一段内求个最高,列不等式。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int maxn=100000+10; int d[maxn],h[maxn]; int i,j,k,l,t,n,m,x,y,ans; bool czy;...
阅读(54) 评论(0)

[CF538B]Quasi Binary

题目大意懒得写做法这样的数只有2^6个。 因此暴力DP#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10...
阅读(67) 评论(0)

[CF538A]Cutting Banner

题目大意懒得写做法枚举分割位置暴力判#include #include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=100+10; char s[maxn]...
阅读(77) 评论(0)

说无可说

题目描述“What’s left to say when every word’s been spoken?” “若沉默再无休止,是否已经说无可说?” ——来自网易云音乐 沉默之中,我已不懂言语。 幻觉中,有人在轻声低吟。 那是谁? 我听见,那个人说了N句话,然而好多话都是重复或者类似,比沉默更加让人不堪。 打破不堪,我想。 每句话是由若干个小写字母组成的字符串。 字符串A和B的相...
阅读(187) 评论(0)

[bzoj4927][SDOI省队集训2017]diyiti

题目大意在一个长度为n的数列中找出六个数,使得可以把它们分成四组,每组的和均相等。求方案数。XJB做只有1+1+1+3或1+1+2+2两种拆分。 先预处理two[x]表示找出两个数和为x的方案数,以及one[x]表示有多少数是x。 对于1+1+1+3,枚举那个1是x,首先有一个C3one[x]C_{one[x]}^3。 对于那个3,我们先枚举一个ai,然后对应方案数是two[x-a[i]]。...
阅读(174) 评论(0)

[bzoj4835]遗忘之树

题目描述定义任意两点之间存在唯一路径的无向图是树。对于一棵n个点的树,如果删掉某个点u之后每个连通块的大小均不 超过n/2,那么称u为这棵树的重心。现在有一棵n个点的树T,利用过程P来构造一个n个点的有向图G,初始G没有边 。现在对T调用过程P,P的内容如下: 1:删去u,对每个连通块递归调用过程P; 2:对每个连通块,如果它的标号最小的重心为v,那么在图G中连一条u到v的有向边。 3:现...
阅读(98) 评论(0)

最小边权和

题目描述有一张n个点m条边的有向图,每条边有一个互不相同的边权w,有q个询问,要求你从点a经过不超过c条边到点b,要求经过的边权递增并和尽量小,求出最小的边权和,如果没有合法方案则输出-1。水题按边权从小到大加入做floyd即可。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespa...
阅读(191) 评论(0)

数列

题目描述有一个长度为n 的排列,现在有一些位置的数已经模糊不清了,你只知道这个排列的逆序对个数是K,你能计算出总共有多少可能的排列吗?折半很经典的meet in the middle 不说了,记住有各种精妙实现压复杂度。#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) usi...
阅读(164) 评论(0)

[bzoj3498]Cakes

题目描述N个点m条边,每个点有一个点权a。 对于任意一个三元环(i,j,k)(i<j<k)(i,j,k)(i<j<k),它的贡献 为max(ai,aj,ak) 求所有三元环的贡献和。 N<100000,,m<250000。瞎做我们都知道一个定理就是一个图,枚举不比一个点度数小的点只有根号m个。 因此我们可以以度数来定义优先级,度数大优先级高,相同度数编号越大优先级越高。 对于一个三元环...
阅读(225) 评论(0)
51条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:209639次
    • 积分:9125
    • 等级:
    • 排名:第2025名
    • 原创:689篇
    • 转载:4篇
    • 译文:0篇
    • 评论:181条
    最新评论
    文章分类