題目大意:給定乙個長度為n的序列,要求選一些數,使得任意乙個長度為m個區間中最多選k個數,求最大的和
費用流直接跑就是了
把這個序列用流量為k費用為0的邊連成一條直線 然後第i個點向第i+m個點連一條費用為a[i]流量為1的邊
跑最大費用最大流即可
卡單純型差評。。。。
#include #include #include #include #define m 1010
#define s 0
#define t (m-1)
#define inf 0x3f3f3f3f
using namespace std;
int n,m,k,ans;
int a[m];
namespace max_cost_max_flowtable[1001001];
int head[m],tot=1;
void add(int x,int y,int f,int c)
void link(int x,int y,int f,int c)
bool edmonds_karp()
link(n,t,k,0);
while( edmonds_karp() );
cout<
bzoj1283 序列 費用流
一開始想了乙個錯誤的建圖,後來看了題解才發現建圖這麼巧妙,用流量為k,費用為0的邊將序列穿起來,然後每個點i向點i m連一條流量為1,費用為a i 的邊,結果費用流寫呲了,調了一會。include include include include include include define maxn...
bzoj 1283 序列(費用流)
time limit 10 sec memory limit 162 mb submit 255 solved 141 submit status discuss 給出乙個長度為 的正整數序列ci,求乙個子串行,使得原序列中任意長度為 的子串中被選出的元素不超過k k,m 100 個,並且選出的元素...
bzoj1283 序列 線性規劃與費用流
題目描述 給出乙個長度為 的正整數序列ci,求乙個子串行,使得原序列中任意長度為 的子串中被選出的元素不超過k k,m 100 個,並且選出的元素之和最大。輸入第1行三個數n,m,k。接下來n行,每行乙個字串表示ci。輸出最大和。樣例輸入 10 5 3 4 4 4 6 6 6 6 6 4 4 樣例輸...