摘要: 题目链接:http://202.121.199.212/JudgeOnline/problem.php?id=1716【题意】 1到N的区间,一种操作让编号从a到b的数变为z,但不会低于2,问多次操作后大于2的数减2后的和为多少。【分析】 本来这题可以用线段树模拟过的,但是这里的N非常大,达到109,开个一维数组就会爆内存,更何况开个线段树。 分析题目后不难发现最后的一个操作一定生效,之前的操作如果有涉及之后操作区间的部分就会失效。根据这条性质,从操作的后面往前扫描,更新区间内的元素,如果元素被更新过就忽略,这样根据所有元素更新后的值就能算出结果了。如果用元素标记的方法一来时间复杂了,二来内存 阅读全文
posted @ 2014-01-04 22:24 wuminye 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.codechef.com/JAN14/problems/SEAGRP【题意】 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1.【分析】 从结论入手,每个点的度恰好为1,那么就意味着每个点只能连接一个点,这样问题就转化为图中的点能否刚好两两配对。 对于奇数个点肯定是不行的,因为一定存在一个点不存在与之配对的点。 如果点是偶数,那么就要求这个图的最大匹配,看匹配树是否为点数的一半。 求匹配的方法和二分图类似,不断找增广路更新匹配数就好了。【代码】 第一次手写增广路代码~写的时候忘记判断增广路是否重点了于是WA了,还好后来想到了。 1 #inc 阅读全文
posted @ 2014-01-04 10:07 wuminye 阅读(551) 评论(0) 推荐(0) 编辑