题目大意给出一些任务开始的时间,结束的时间,和优先级。问在第k秒时的第k大优先级,和前k小优先级的和。思路CQOI太良心,所有题都是512M。
这个题只需要按照时间轴弄一个可持久化线段树就行了,每个时间点对应着一个权值线段树,维护子节点的和和个数。
注意在没有操作的时候,当前时间点的线段树要复制上一个时间点的线段树。CODE#define _CRT_SECURE_NO_WARNINGS#incl...
分类:
其他好文 时间:
2015-04-09 13:45:34
阅读次数:
203
题目大意给出一个无向图,求出在这个图上1到n的所有最短路形成的图的最大流。思路想让大家叠模板也不带这么懒得吧。。
记得开long long就行了。CODE#define _CRT_SECURE_NO_WARNINGS#include
#include
#include
#include
#include <algorith...
分类:
其他好文 时间:
2015-04-07 17:50:24
阅读次数:
127
题目大意:给出m和n,求出一种方案使得每一个点和周围的四个点的1的个数为偶数。
思路:根据题意可以列出m*n个异或方程,然后组成异或方程组。解这个异或方程组然后输出任意一个解就可以了。
PS:值得注意的是,全是0肯定是一个解,显然你不能输出这个解。所以你需要让一个或一些自由元的值为1,至于怎么做,随便yy就行了。
PS2:这个题的样例吞掉了空格,然而又是SPJ,所以就是wa。。然后我...
分类:
其他好文 时间:
2015-02-09 23:13:09
阅读次数:
249
题目大意(新nim游戏):定义一种新的nim游戏,每个人在一开始都有一次机会拿走任意堆的石子或者一个都不拿,问先手必胜时第一次最少取走多少。
思路:正常的nim游戏只要有一个子集的异或和=0那么先手就是必败的。注意到只要过了两个回合之后这个游戏就变成了正常的nim游戏,如果在我们第一次取的时候,如果剩余的所有堆中存在一个子集的异或和=0,那么后手就会让他拿走之后剩下的石子的异或和为0,我...
分类:
其他好文 时间:
2015-02-03 17:22:48
阅读次数:
196
题目大意:给出一个1~n的排列,问这其中的中位数为k的子序列的数量是多少。
思路:要想让k为中位数,一定要让它出现在这个序列中所以就以这个数为中心向两边拓展。想让一个数成为中位数,那么这个序列中出现的小于它的数一定要等于大于它的数。考虑到这个数左右都有可能有数字,那么就可以表示成:前多+后多=前少+后少,也就是前多-前少=后少-后多。之后就用个数组随意统计一下就行了。
CODE...
分类:
其他好文 时间:
2015-01-15 09:25:09
阅读次数:
130
题目大意:给出一些三角形,求这些三角形面积的并。
思路:应该可以辛普森积分,但是应该会很麻烦。。
以前扫描线就写过矩形的用数据结构维护的那种,和计算几何不占边,这次才是好好写了一次正宗的扫描线。不得不说这个算法还是很靠谱的。
其实这个思路不仅限于三角形面积的并,所有凸多边形的面积并应该都可以解决。
对于任意由线段组成的图形,对这个图形进行多次的划分,总可以将这个图形划分成梯形,面积...
分类:
其他好文 时间:
2015-01-10 16:42:53
阅读次数:
400
题目大意:给出一个数列,每次从这个序列中删掉一个数字,问每次删之前逆序对的数量是多少。
思路:这个题用CDQ分治是飞快的,然而我不知道怎么写。。于是就朴素的写了树套树。然后就朴素的被卡常了
内层用一个线段树。这个线段树不修改,一开始就要建好,然后线段树的每一个节点维护一个平衡树,存的是线段树存的区间中所有的值。
一开始先算一下逆序对数,然后每次删点的时候,先查询在这个点之前有多少大于...
分类:
其他好文 时间:
2014-12-23 17:25:53
阅读次数:
360
题目大意:给出一个序列,给出一种排序方式,模拟这种排序方式排序,并输出每次找到的节点的位置。
思路:它让你做什么你就做什么,无非就是个Reverse,很简单。注意一下排序的时候权值相等的情况就行了。
CODE:
#include
#include
#include
#include
#define MAX 100010
#define INF 0x3f3f3f3f...
分类:
编程语言 时间:
2014-12-08 21:27:31
阅读次数:
195
题目大意:给出n个凸多边形,求这些多边形的面积的交。
思路:犯傻了。。以后看到凸多边形第一时间就要想到半平面交啊。。多明显啊,半天愣着没想出来。
CODE:
#include
#include
#include
#include
#include
#include
#define MAX 6100
#define EPS 1e-10
#define DCMP(...
分类:
其他好文 时间:
2014-11-22 17:33:23
阅读次数:
169
题目大意:给一张m*n的网格,问这里面以网格为顶点的三角形有多少个。
思路:数学题。首先算出所有互不相同的三点对,然后减掉其中三个点在一个直线上的点对就行了。注意答案开long long。
CODE:
#include
#include
#include
#include
using namespace std;
int m,n;
int Gcd(int ...
分类:
其他好文 时间:
2014-10-04 19:06:07
阅读次数:
191