摘要: /* 查分约束. 给出的约束既有>= 又有=x 建边 a到b 权值为x Sb-Sa Sa-Sb>=-y 建边 b到a 权值为-y 然后跑最短路 SPFA 判断到不了终点 判断负环的死循环. */ #include #include #include #include #define maxn 20010 using namespace std; int n,m1,m2,num,head[m... 阅读全文
posted @ 2016-05-13 17:37 一入OI深似海 阅读(165) 评论(0) 推荐(0) 编辑
摘要: /* 数组开大保平安. 查分约束: 输入的时候维护st和end 设每个点取元素di个 维护元素个数前缀和s Sbi-Sai-1>=ci 即:建立一条从ai-1到bi的边 权值为ci 表示ai到bi的最小取元素个数 然后跑st到end的最长路 (建边就已经保证了最优) 最后 dis[end] 即为end的前缀和 即为st到end 符合每一个约束的最小去元素值 同时查分约束也满足性质 Sa... 阅读全文
posted @ 2016-05-13 17:03 一入OI深似海 阅读(162) 评论(0) 推荐(0) 编辑
摘要: /* Tanjar缩点后 记好每个点属于第几个强联通分量 然后维护nu数组表示每个强联通分量的出度为几(枚举割边) 只要某个强联通分量有出度而没有入度 说明并不是多有牛都认为这里面的牛牛 最后找nu为零的唯一一个强联通分量 如果有好几个nu为零的 依旧没有符合条件的牛 即图并不连通 */ #include #include #include #define maxn 50010 usin... 阅读全文
posted @ 2016-05-12 22:12 一入OI深似海 阅读(134) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define pa pair using namespace std; int n,num,dis[101],ans,f[101],head[101]; struct node { int u,v,pre,dis; }e[110*110]; void Add(int from,int to,int dis) { ... 阅读全文
posted @ 2016-05-12 15:36 一入OI深似海 阅读(203) 评论(0) 推荐(0) 编辑
摘要: /* - - 这题做了一天.....粗心害死人啊 题目描述恶心 数据更恶心... 先处理一下能走的边 能走的点(到这建边从终点跑一下.) 然后就是SPFA了 注意负环的判断 */ #include #include #include #include #define maxn 1110 #define maxm 10010 #define inf 999999999 using namesp... 阅读全文
posted @ 2016-05-12 15:11 一入OI深似海 阅读(301) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define maxn 110 #define pa pair using namespace std; int n,num,head[maxn],dis[maxn],ans,len=0x7fffffff,f[maxn]; struct node { int u,v,t,pre; }e[maxn*maxn]; vo... 阅读全文
posted @ 2016-05-11 16:34 一入OI深似海 阅读(208) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define ll long long using namespace std; ll n,num,ans,hou[10000000],f[10000000],c[10000000],size; struct node { ll l,r,data; }t[10000000]; void Hou(ll p) { ... 阅读全文
posted @ 2016-05-10 22:31 一入OI深似海 阅读(142) 评论(0) 推荐(0) 编辑
摘要: /* 这题实在调糊了 借鉴的题解的一些判断方法 位运算大法好 - - 因为要集齐所有的宝石所以状态压缩一下 f[i][j][s]将s化为二进制 每一0表示该宝石没有 1表示该宝石有 有:到(i,j)这个点时 宝石收集状况为s的状态是否存在 */ #include #include #include #include using namespace std; int T,n,m,k,f[21... 阅读全文
posted @ 2016-05-10 18:19 一入OI深似海 阅读(817) 评论(0) 推荐(0) 编辑
摘要: /* 和普通的迷宫问题类似只是多了一个叫传送门的东西 对于传送门的处理: 每当跑到传送门就把其余所有传送门周围的点都入队 传送门之间不花费时间并且从不是传送门的点走到传送门 也不花费时间花费时间的(好像说了句废话.) 所以判断一下 */ #include #include #include #include #include #define maxn 5010 using namespace ... 阅读全文
posted @ 2016-05-10 17:56 一入OI深似海 阅读(302) 评论(0) 推荐(0) 编辑
摘要: /* 巧妙地使用fail数组 根据fail数组的定义 fail[i] 有 长度为i的子串最长公共前后缀为fail[i] 比如样例 fail 0 0 1 2 那么我们维护一个ans[i]表示到i位置的时候 前i位置子串的匹配次数 比如 a b a ans[1]=1 ans[2]=1 到ans[3]的时候 发现 a 又出现了一边 说明之前的a子串统计少了 相应的可以根据 fail找到a的位置... 阅读全文
posted @ 2016-05-10 11:47 一入OI深似海 阅读(129) 评论(0) 推荐(0) 编辑