http://poj.org/problem?id=2689
题意:给出一个大区间[L,U],分别求出该区间内连续的相差最小和相差最大的素数对。
因为L2147483647,直接筛素数是不行的,数组就开不了。但是可以根据素数筛的原理。我们先筛出sqrt(2147483647)以内的素数,然后拿这些素数去筛[L,U]之间的素数,即两次素数筛。但是L,U还是很大,但U-L
#includ...
分类:
其他好文 时间:
2014-07-24 10:28:16
阅读次数:
210
Subsequence
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 8403
Accepted: 3264
Description
A sequence of N positive integers (10 < N < 100 000), each of...
分类:
其他好文 时间:
2014-07-24 10:27:40
阅读次数:
215
树状数组,果断1A啦,心情舒畅啊,哈哈
先按照y轴从小到大排序,然后一次加入并统计每个点得x坐标,这道题数据不严谨啊,在y轴相同得情况下,应该以x轴从大到小排序,可我都没排x轴就过了
#include
#include
#include
#include
using namespace std;
int Max;
struct node{
int x,y;
}a[15005];
int...
分类:
其他好文 时间:
2014-07-24 10:23:24
阅读次数:
185
Snowflake Snow SnowflakesTime Limit: 4000MSMemory Limit: 65536KTotal Submissions: 30652Accepted: 8076DescriptionYou may have heard that no two snowfla...
分类:
其他好文 时间:
2014-07-24 10:04:03
阅读次数:
283
题意:N个顶点, M条双向边, W条权值为负的单向边。求是否存在负环。思路:首先你要懂bellman-ford或spfa。。这是基础的spfa判断是否存在负环的题,存在负环的节点会重复入队(因为最短路在不断变小), 所以只要有节点重复入队超过n次,即可判断存在负环(即开一个数组记录节点入队次数)。总...
分类:
其他好文 时间:
2014-07-24 09:48:13
阅读次数:
305
第一道计算几何。二分一下用叉积来判。。看了DIS上说要INT64,就改INT64了。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int Max=5050; 7 8 struct ...
分类:
其他好文 时间:
2014-07-24 09:43:32
阅读次数:
257
本来是想找一个二维线段树涉及懒惰标记的,一看这个题,区间修改,单点查询,以为是懒惰标记,敲到一半发现这二维线段树就不适合懒惰标记,你更新了某段的某列,但其实其他段的相应列也要打标记,但因为区间不一样,又不好打。。。也可能是我这是在套用一维线段树的思想,还有更好的二维线段树懒惰标记方法反正到现在我还没...
分类:
其他好文 时间:
2014-07-24 05:06:58
阅读次数:
211
题目链接:http://poj.org/problem?id=1222题意: 给你一个5 * 6的矩阵,由0和1组成。对于其中一个位置(i, j)进行操作的话,四周4个位置都会操作一次。(注:所谓的操作就是把状态0->1或者1->0)这个游戏一般人小时候都玩过吧。 最后问你是从一个当前状态转移到目标...
分类:
其他好文 时间:
2014-07-24 00:48:17
阅读次数:
278
累了就要写题解,最近总是被虐到没脾气。
来回最短路问题貌似也可以用DP来搞,不过拿费用流还是很方便的。
可以转化成求满流为2 的最小花费。一般做法为拆点,对于 i 拆为2*i 和 2*i+1,然后连一条流量为1(花费根据题意来定) 的边来控制每个点只能通过一次。
额外添加source和sink来控制满流为2。
代码都雷同,以HDU3376为例。
#include
#include
#...
分类:
其他好文 时间:
2014-07-23 22:40:08
阅读次数:
560
# include
# include
# include
using namespace std;
int father[1010];
int next[1010];//当前集合的下个元素(包括i)
int pre[1010];//当前集合的上个元素(包括i)
int num[1010];//num[i]当前集合储存的点的个数(包括i)
int vis[1010];
int sum[101...
分类:
其他好文 时间:
2014-07-23 22:39:47
阅读次数:
446