首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
poj题解
已注销
创建于2023-02-15
订阅专栏
poj题解
暂无订阅
共20篇文章
创建于2023-02-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
poj2217详解 ( 后缀数组 + 高度数组 )
#include <stdio.int i = a + k <= S.int j = b + k <= S.for(int i = 0; i <= S.rk[i] = i < S.for(int i = 1; i <= S.sort(sa, sa + S.for(int i = ...
poj1466(二分图最大独立集)
#include <stdio.#include <string.data[from].for(int i = 0; i < data[v].data[i].
poj3171(dp + 线段树)
#include <stdio.if(a.a == b.return a.b < b.return a.a < b.scanf("%d %d %d", &data[i].a, &data[i].b, &data[i].int a, b, c = data[i].a = data[...
poj3068(最小费用流)
#include <stdio.#include <string.data[i].push_back(edge(j, 1, k, data[j].data[j].push_back(edge(i, 0, -k, data[i].for(int j = 0; j < data[i]...
poj2195(最小费用流)
首先统计每个小人去每个房子分别最少需要多少钱, 小人到房子所需费用等于两者的横坐标差的绝对值加上纵坐标差的绝对值。#include <stdio.#include <stdlib.ddd[i].push_back(edge(j, 1, k, ddd[j].ddd[j].push_...
poj3686(最小费用流)
题目大概意思为有N个玩具,M个工厂,每个工厂一次只能生产一个玩具,顺序任意,求所有玩具的加工完的平均时间最小值 例:N = 3 M = 2 Z = {{1,100},{100,1},{1,100}} 就相当于第一个在一工厂加工完花了 1 时间,第二个在二工厂加工完花了 1 时间,...
poj1769(dp + 线段树)
#include <stdio.
poj3678详解(2-SAT)
#include <stdio.#include <string.#include <stdlib.edge[i].redge[j].for(int i = 0; i < edge[v].flag.for(int i = 0; i < redge[v].for(int i = f...
poj2226(最小顶点覆盖)
解题思路:把板子当成图的顶点,把泥泞的点当作连接对应板子(一个横着的,一个竖着的)的边,这样转化之后,求最少需要的板子数量,即相当于我们对于任意边,都至少需要一个该边的端点,即转为成了求最小顶点覆盖问题。 *.*..***...*.#include <stdio.#include...
poj1274(二分图匹配)
#include <stdio.data[from].for(int i = 0; i < data[f].data[i].
poj1486(二分图必须边)
#include <stdio.#include <string.data[from].data[to].for(int i = 0; i < data[v].data[i].for(int j = 0; j < data[i].
poj3680(最小费用流 + 拆点)
#include <stdio.ddd[from].push_back(edge(to, cap, coust, ddd[to].ddd[to].push_back(edge(from, 0, -coust, ddd[from].for(int j = 0; j < ddd[i]...
poj2723详解(二分 + 2-SAT)( 两种方法求解 )
#include <stdio.#include <string.edge[i].redge[j].for(int i = 0; i < edge[v].flag.for(int i = 0; i < redge[v].flag.for(int i = flag.edge[i]....
poj2186(强连通分量分解)
#include <stdio.#include <string.data[i].rdata[j].for(int i = 0; i < data[v].flag.for(int i = 0; i < rdata[v].for(int i = flag.
poj3484详解(二分)
#include <stdio.
poj2724(二分图匹配)
#include <stdio.#include <string.edge[from].edge[to].for(int i = 0; i < edge[v].data.edge[i].data.data.sort(data.begin(), data.data.erase(un...
poj3422(最小费用流 + 拆点)
题目大概意思为有一个N × N矩阵,每个格子里都有一个非负数,一辆车从左上方的网格移动到右下方的网格k次(车只向右或向下移动)。每次访问格子后,其替换为0,且将其加入到金额中。求第k次旅行后能得到的最大金额是多少。首先我们需要把求最大金额转化为求最小费用流,我们便用 1000 -...
poj3683(2-SAT)
#include <stdio.#include <string.for(int i = 0; i < edge[v].flag.for(int i = 0; i < redge[v].data[i].data[i].scanf("%d", &data[i].if(min(dat...
poj2112(floyd+二分+二分图多重匹配)
#include <stdio.#include <string.
poj3692(二分图最大独立集)
题目很简单,只用稍微转换一下思路即可,因为我们要以男生与女生来构建二分图,所以所有边都应该连接男生和女生,因此男生与男生和女生与女生之间不应该有边相连。 因此我们以两人互不相识为条件构建边,这样就能得到一个二分图。#include <stdio.#include <string....