一开始看这个题目以为是个裸的矩阵快速幂的题目,后来发现会超时,超就超在 M = C^(N*N). 这个操作,而C本身是个N*N的矩阵,N最大为1000。但是这里有个巧妙的地方就是 C的来源其实 是= A*B, A为一个N*k的矩阵,B为一个k*N的矩阵,k最大为10,突破的就在这里,矩阵的结合律要用...
分类:
其他好文 时间:
2014-08-24 19:13:12
阅读次数:
177
当时刚学LCA-tarjan不久,就比赛有这个题,但没想到还是没做出来。。一开始以为是DP来着,没想到是贪心,想想也对,从树的最下层开始,每次遇到询问的点,就找到他们的LCA(路径里面必经LCA),然后把该LCA下的子树连同自己全部染色为不可用了。#include #include #include...
分类:
其他好文 时间:
2014-08-24 19:13:02
阅读次数:
206
发现最近碰到好多次二分结果的题目,上次多校也是,被我很机智的快速过了,这个思想确实非常不错。在正面求比较难处理的时候,二分结果再判断是否有效往往柳暗花明。这个题目给定n个数字的序列,可以操作m次,每次要操作w个连续的数字,每次的操作将使得该段连续数字的数都+1,最后求整个序列最小值的最大值求最小值最...
分类:
其他好文 时间:
2014-08-24 17:59:12
阅读次数:
204
其实现在想起来是个巨简单的DP,模型就跟LCS很像,比赛的时候居然没想出来,在聪哥提醒下还卡了个地方就是说给定一串n个数字的序列,可以连续合并,最终使得序列是回文的,题目也给定了合并数字所需的代价,合并一个为0,合并2个 3个。。n个的代价都有题目比较新意的地方就是回文,这也是我们要解决的主要地方,...
分类:
其他好文 时间:
2014-08-24 17:59:02
阅读次数:
210
多校综合排名前25名的学校请发送邮件到HDUACM@QQ.COM,告知转账信息(支付宝或者卡号)Divide ChocolateTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total S...
分类:
其他好文 时间:
2014-08-24 11:30:42
阅读次数:
233
/*
很明显的最大权闭合图题
*/
#include
#include
#include
using namespace std;
#define N 2100
#define inf 0x3fffffff
struct node {
int u,v,w,next;
}bian[N*N*20];
int head[N],yong,dis[N],work[N];
void init(){
yong=...
分类:
其他好文 时间:
2014-08-23 16:51:11
阅读次数:
251
hdu 4950 Monster
题意好简单,队友说要用线段树做,要不然会TLE,连树状数组也会T。我说让我试试树状数组,结果搞了一个
小时左右用树状数组给搞出来了,嘿嘿。用了树状数组区间更新。
#include
#include
#include
#include
#define maxn 100010
using namespace std;
...
分类:
其他好文 时间:
2014-08-22 21:12:10
阅读次数:
277
链接多校的最后一场,当时没看懂题意,看题目还以为是概率问题就没深看。官方题解对于他说的第一种,考虑长为L的线段 概率为2L/(pi*d), 可以理解,下面的就不知道在说啥了。。按我初始的想法想要枚举角度,根据凸包的高度差得出概率,不过有一种更简便的方式,就是题解中的求出凸包的周长,这种方式我的理解为...
分类:
其他好文 时间:
2014-08-22 20:54:29
阅读次数:
279
出题人是个蛤粉,蛤蛤蛤蛤蛤蛤蛤蛤蛤。。。。
题意:
每个格子只能填0~9这10个整数,给出行和及列和,求是否有合法方案,如果有并判断唯一性。
分析:
看到这题就感觉熟悉啊,和之前某场多校的题目是一样的,当初还不会网络流呢,现在虽然还不会建图,但是套套模板还是没有问题的。
建立二分图,行为X部,列为Y部,每个X部的点向Y部连一条容量为9的边,增加源点S,S向X部的所有点连边,容量为行和,增加汇点,每个Y部的点向汇点连边,容量为列和,在该图中跑一边网络最大流,如果满流则有合法方案。然后在残留网络中找环(不要立即...
分类:
其他好文 时间:
2014-08-22 19:45:19
阅读次数:
180
思路:比赛的时候看到这题感觉是线段树或者树状数组,但是因为要区间加倍,然后不知所措了,想了好久也不知道怎么把那个加倍的数怎么处理,然后就一直想第一道题了就没管这题了。虽然之前也做过这种类型的树状数组,不过这题确实是比较机智,把树状数组用得是非常爽。
sum[i]是树状数组的前缀和,cnt[i]表示第i个数共有多少个数。
更新加倍过程:我们让(l,r)这个区间加倍的时候,二分树状数组找到l所对应...
分类:
其他好文 时间:
2014-08-22 17:51:09
阅读次数:
203