随笔分类 -  ZOJ/ZJU

摘要:POJ 2528 求没有被完全覆盖的海报(不知道是不是这个意思)有多少张。注意题目一开始给的数字不是线段的端点而是线段。所以离散化的时候需要先处理,也就是把右端点+1.然后离散化,插入的时候应该插入线段,所以应该插入(left, right-1)。然后查询只需查询一次,标记即可。 ZOJ 2301, HDU 1199 做法是一样的,都是一维线段树,比较好处理。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <cmath> 阅读全文
posted @ 2011-11-13 16:41 like@neu 阅读(419) 评论(0) 推荐(0)
摘要:题意:给出两个数,如果在1-100之间能找到若干个数的乘积是a,还能找到若干个数的乘积是b,而且没有交集。那max(a,b)输出,如果都找不到输出max(a,b)。如果小的能找到大的找不到输出min(a,b)。 解法:搜索。其实这个题我之前一直不会,然后搜了下题解,发现简单的搜索就能过。只要能找到一种组成a,b的情况那么就是大的赢。否则看是不是能找到一种组成小数的情况,那就是小的赢。结果就是判断小的赢还是不赢。如果能想到这也就简单了吧。#include <iostream>#include <cstring>#include <algorithm>#incl 阅读全文
posted @ 2011-09-20 20:33 like@neu 阅读(259) 评论(0) 推荐(0)
摘要:题目传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 题目意思是区间涂色,求最后能看到的颜色的段数。解法是线段树。 建立一棵线段树,对每一条线段用点表示,比如0-4,就表示成1 2 3 4四个点。其实不这样也行。只是这样表示更直观了。每次插入一个区间和这个区间涂的颜色。如果这个区间正好是一棵树的左右边界,就直接更新这棵树的颜色,不再往下传递。不然的话,就要往下修改,而且这棵树的颜色也要传给它的子树。比如更新区间1 2,当前这棵树的左右边界分别是1 4,而且颜色和更新的颜色不同,那就应该把他的子树全部变.. 阅读全文
posted @ 2011-09-02 12:04 like@neu 阅读(226) 评论(0) 推荐(0)