POJ
文章平均质量分 76
zxxxxzzz
这个作者很懒,什么都没留下…
展开
-
POJ1129-Channel Allocation
折腾的好忧郁...大神的指针就是那么随意原创 2014-09-12 01:39:27 · 567 阅读 · 1 评论 -
poj 2528 Mayor's posters 简单离散化+线段树
简单离散化+线段树#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l, mid, rt << 1#define rson mid + 1, r, rt原创 2015-02-07 20:13:03 · 347 阅读 · 0 评论 -
poj 3264 Balanced Lineup简单线段树
加了挂立减1s= =#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l, mid, rt << 1#define rson mid + 1, r, r原创 2015-02-08 23:39:47 · 364 阅读 · 0 评论 -
hdu 1540 & poj 2892 Tunnel Warfare 线段树区间合并
基础线段树区间合并,详见代码#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l, mid, rt << 1#define rson mid + 1,原创 2015-02-18 01:31:59 · 410 阅读 · 0 评论 -
poj 2236 Wireless Network 并查集
简单并查集。n台电脑,两种操作,1 修复x,2查询x y是否连接。是否连接为两台电脑的距离不超过d#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l,原创 2015-02-25 22:33:18 · 325 阅读 · 0 评论 -
poj 1182 食物链 带权并查集
神奇&坑的一题。中文题题意不解释,注意这里输入只有一组数据,EOF会报WA。详解请参考http://blog.csdn.net/c0de4fun/article/details/7318642这里看两点:1,处理路径压缩时候的关系。2,集合合并时候的关系,当然1 是 2 的前提1.首先定义节点之间的关系(这里的关系就是a == b, a 吃 b, b 吃 a ,a 是 b 父亲),原创 2015-02-26 15:49:53 · 447 阅读 · 0 评论 -
poj 3126 Prime Path bfs
题意:给出两个千位的素数,问从第一个素数变换到第二个素数最少需要多少步。变换是指每次只有某位上的数可以改变#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson原创 2015-02-25 14:00:33 · 284 阅读 · 0 评论 -
poj 1733 Parity game 带权并查集
题意:给出一个01串的长度n,(1~10000000),和m对二元组,每个二元组后面跟even或者odd,表示该二元组里面的1的个数为奇数或者偶数,问最早出现错误的二元组的下标,错误即为,满足前面条件的,但不满足当前的条件的。很明显看出是并查集,而且n的范围远大于m,可以先离散化处理每个二元组的下标,然后在按照普通并查集那样处理就行了。我遇到一个坑自己的地方,即开始初始化father数组是用f原创 2015-03-10 21:53:56 · 322 阅读 · 0 评论 -
ACM中java的使用
这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目。1. 输入:格式为:Scanner cin = new Scanner (new BufferedInputStream(System.in));例程:import java.io.*;import java.math.*;import j转载 2015-03-12 20:12:51 · 318 阅读 · 0 评论 -
poj 3237 Tree树剖边权更新模板
题意:将树上某条路径的值正负倒换,或者使某条边变成val,或者查询某条路径上的最大的边权裸边权更新,与点权更新不同的是,边权中记录边的编号是pos[x] + 1,也就是由重建链之后的子节点记录,pos[x]+1同pos[ son[x] ]。详见代码,另附有数据#include #include #include #include #include #include #inc原创 2015-03-24 21:55:12 · 653 阅读 · 0 评论 -
poj 3281 Dining isap + 拆点
题意:n每头牛,F份不同的食物, D种不同的水,每头牛都有自己的喜欢,问能最大情况下能被满足的牛数量。果果的网络流,关键是建图,这里将每头牛拆成两个点(算是技巧,学习下),然后设超源超汇,如下建图 st边权1: | | | | | | | | | | | 食物 i :1~F:原创 2015-05-11 21:11:55 · 364 阅读 · 0 评论 -
poj 1087 A Plug for UNIX isap
经典网络流模型。n种插座,m种电器和对应的插座,k种转换器(数量无限)(s1, s2表示s2插座可以转成s1插座)。建超源超汇,超源和插座连,流量1,电器和插座连,流量1,然后插座和对应电器连边,流量1,最后是通过转换器的插座之间连边,流量是inf(因为转换器本身就是inf的)然后模板一套即可#include #include #include #include #includ原创 2015-05-12 20:27:05 · 325 阅读 · 0 评论 -
poj 1459 Power Network isap
题意:n 个点,np个起点, nc个终点,m条边,求所有起点到终点的最大流建个超源超汇,+sscanf读入就是道isap的模板题了。(一直没用过sscanf突然发现好神奇0 0p:这里还有一个是边因为建双向,而终点往起点也有连边,一共就是N*N*2条边了#include #include #include #include #include #include #includ原创 2015-05-16 21:13:03 · 308 阅读 · 0 评论 -
poj 3250 Bad Hair Day 单调栈
题意:n头牛往右看能看到的头顶总数(即身高小于它的)#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l, mid, rt << 1原创 2015-06-03 19:50:02 · 318 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers 线段树成段更新模板
#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson l, mid, rt << 1#define rson mid + 1, r, rt << 1 | 1#原创 2015-02-07 20:43:29 · 419 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors
传送门:http://poj.org/problem?id=1330LCA入门#include #include #include #include using namespace std;const int N = 10005;int n;vector vec[N];int pre[N];bool vis[N];bool root[N];int u, v;原创 2014-08-16 21:06:18 · 609 阅读 · 0 评论 -
poj 1273 & hdu 1532 Drainage Ditches(最大流 )EK,dinic模板
第一发网络流纪念下~~~因为这里e和v都差不多,所以EK和dinic跑出来的时间差不多。纠结的是如何把邻接矩阵换成邻接表的..EK写法://沿此路径添加反向边,同时修改路径上每条边的容量#include#include#include#include#includeusing namespace std;typedef __int64 ll;const int原创 2014-12-25 15:41:43 · 597 阅读 · 0 评论 -
poj 1664 放苹果
设dp[ i ][ j ]为i个苹果放进j个盘子里,则原创 2014-11-09 19:36:22 · 336 阅读 · 0 评论 -
POJ 3342 Party at Hali-Bula
树形dp 入门,先输入大boss名字, 接下来n-1组,输入原创 2014-10-31 19:24:25 · 470 阅读 · 0 评论 -
POJ 3230 Travel
n 个城市 逛m 天,从city i -> j =原创 2014-11-02 19:20:25 · 445 阅读 · 0 评论 -
poj 1101 The Game bfs
历尽艰难万险过了的bfs水题感动TUT。类似连连看,但是判断是否从起点能连到终点和求最小转弯数。#include#include#include#include#includeusing namespace std;int n, m;struct node{ int d, x, y, t;};#define N 100int dir[4][2] = { 1, 0,原创 2014-11-27 20:29:58 · 531 阅读 · 0 评论 -
poj 2312 Battle City bfs
简单bfs#include#include#include#include#includeusing namespace std;int n, m;struct node{ int x, y, t;}st;#define N 305int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1};int sx, sy, ex, ey;原创 2014-11-27 21:17:55 · 436 阅读 · 0 评论 -
poj 1111 Image Perimeters
先输入一个矩阵,再输入一个X的位置,然后输出与这个X在八个方向能够连起来的所有X组成的图形的周长。然后周长就是围在块里的X旁边的'.'的个数。爆搜即可。。新姿势:cin保平安啊。。scanf("%s", a);这句假如输入字符串长度为5,那么遍历的时候就到5为止了(\0嘛..),就算之前memset(a , 'x', sizeof(a));也没用。而且在5之后的'x'也没了(其实就是输入一原创 2014-11-26 23:17:29 · 453 阅读 · 0 评论 -
poj 1184 聪明的打字员
#include #include #include #include using namespace std;struct point{ int step; string s;};string e;map my;queue q;int BFS(point st){ point t, tt; string ss; int i; while(!q.原创 2014-11-30 17:14:00 · 564 阅读 · 0 评论 -
hdu 1535 || poj 1511 Invitation Cards(heap + dijstra || spfa)
最短路,先从起点1开始求到所有点的距离和,然后建原创 2014-11-09 15:24:32 · 435 阅读 · 0 评论 -
poj 1753 Flip Game (dfs)
裸爆搜。但是要注意搜索方法..可参考http://blog.csdn.net/lyy289065406/article/details/6642595#include#include#include#includeusing namespace std;int a[10][10];char c[10][10];int tt;bool flag;void flip(i原创 2014-12-16 20:09:30 · 428 阅读 · 0 评论 -
poj 1321 棋盘问题
裸dfs#include #include #include #include #include #include #include #include #include #include #include using namespace std;const int N = 10;int n, k;int ans, now;char a[N][N];int原创 2015-02-01 23:55:17 · 397 阅读 · 0 评论 -
poj 3279 Fliptile
题意:给出一个黑白棋盘,每次能翻转坐标为(x,y)及其上下左右的棋子,问是否能通过翻转使得颜色全为白。可以的话输出要翻转的地点且字典序最小,否则输出impossible枚举第一行的状态,通过翻转后的状态,从第二行开始去不断的根据上一行的状态以及确定要不要翻,过程中更新最优答案#include #include #include #include #include #inclu原创 2015-02-02 00:13:04 · 531 阅读 · 0 评论 -
poj 1426 Find The Multiple
灰常水的搜索。 == 因为数据太弱unsigned int64足够存的下答案。。从1dfs下去就行了#include #include #include #include #include #include using namespace std;bool OK;typedef unsigned __int64 ll;ll n;void dfs( ll now, i原创 2015-02-02 00:15:15 · 360 阅读 · 0 评论 -
poj 3278 Catch That Cow
bfs#include #include const int N = 100010; using namespace std; queue q;bool vis[N];int step[N]; int bfs(int n, int k){ q.push(n); vis[n] = true; step[n] = 0;原创 2015-02-01 23:58:22 · 389 阅读 · 0 评论 -
poj 2828 Buy Tickets 线段树单点更新
题意:有N个人排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出//#include #include #include #include #include #include #include #include #include #include #include ///cout << fixed << setpr原创 2015-09-17 21:26:46 · 341 阅读 · 0 评论