给出一个长度为 的正整数序列Ci,求一个子序列,使得原序列中任意长度为 的子串中被选出的元素不超过K(K,M<=100) 个,并且选出的元素之和最大。

据说是什么经典区间带权限制问题?

有两种写法...

1.可以根据流量平衡列方程,然后添加一个变量将不等式化成等式。具体看NOI2008的志愿者招募。 
2.直接每个点依次排开,i->i+1连(k,0)【k是流量限制,0是费用】的边,然后对于一个区间[l,r]就l->r连(1,val);然后源点->1连(k,0),n->T一样,跑一边最大费用最大流即可。经过每个点的流量都保证了不超过k

#include<bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<=r;++i)
using namespace std;
const int N=10240,inf=214748364;
struct Edge{int to,next,from,c,w;
}e[1000000];
int head[N],tot=1,ans,dis[N],from[N],m,K,n,T,x;
bool used[N];
inline void ins(int u,int v,int w,int cost) {e[++tot].to=v; e[tot].next=head[u]; head[u]=tot; e[tot].w=w; e[tot].c=cost; e[tot].from=u;
}
inline bool spfa() {queue<int> q; rep(i,0,T) dis[i]=-1,from[i]=0,used[i]=0; dis[0]=1; q.push(0); used[0]=1;  while(!q.empty()) {int x=q.front(); q.pop();used[x]=0;for(int k=head[x];k;k=e[k].next) if(e[k].w>0&&dis[x]+e[k].c>dis[e[k].to]){dis[e[k].to]=dis[x]+e[k].c; from[e[k].to]=k;if(!used[e[k].to]) {used[e[k].to]=1; q.push(e[k].to);}}}return dis[T]!=-1;
}
inline void run(){int x=inf;for(int k=from[T];k;k=from[e[k].from]) x=min(x,e[k].w);for(int k=from[T];k;k=from[e[k].from]) {e[k].w-=x; e[k^1].w+=x; ans+=e[k].c*x;}
}
inline void insert(int u,int v,int w,int c){ins(u,v,w,c); ins(v,u,0,-c);
}
int main(){scanf("%d%d",&m,&K); n=m*3;T=n+1;rep(i,1,n) {scanf("%d",&x);insert(i-1,i,K,0);if(i+m<=n) insert(i,i+m,1,x);else insert(i,T,1,x);}insert(n,T,K,0);while(spfa()) run();printf("%d\n",ans);
}

View Code

转载于:https://www.cnblogs.com/Bloodline/p/5870591.html

bzoj3550: [ONTAK2010]Vacation1283: 序列相关推荐

  1. Bzoj3550 [ONTAK2010]Vacation

    Time Limit: 10 Sec  Memory Limit: 96 MB Submit: 286  Solved: 209 Description 有3N个数,你需要选出一些数,首先保证任意长度 ...

  2. 判断某数组是不是二叉树的前序遍历序列 python递归

    code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...

  3. pytorch中如何处理RNN输入变长序列padding

    一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...

  4. PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢!http://blog.csdn.net/m0_37306360/article/details/79318644 简介 在这个项目中,我们 ...

  5. 支持向量机SVM序列最小优化算法SMO

    支持向量机(Support Vector Machine)由V.N. Vapnik,A.Y. Chervonenkis,C. Cortes 等在1964年提出.序列最小优化算法(Sequential ...

  6. LeetCode简单题之最长特殊序列 Ⅰ

    题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 .如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) ...

  7. GStreamer 1.0 series序列示例

    GStreamer 1.0 series序列示例 OpenEmbedded layer for GStreamer 1.0 这layer层为GStreamer 1.0框架提供了非官方的支持,用于Ope ...

  8. 微调BERT:序列级和令牌级应用程序

    微调BERT:序列级和令牌级应用程序 Fine-Tuning BERT for Sequence-Level and Token-Level Applications 为自然语言处理应用程序设计了不同 ...

  9. 【剑指Offer】23、二叉搜索树的后序遍历序列

      题目描述:   输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   解题思路:   对于后续遍历序列,序 ...

最新文章

  1. SAP LSMW 物料主数据Basic Data Text数据的导入
  2. 开发最前沿:项目案例实战之桥模式
  3. 网络营销——浅析网站改版之后对网站展开新的网络营销有哪些影响?
  4. python批量查询数据库_Python + MySQL 批量查询百度收录
  5. 关于Exchange邮箱服务器角色故障排查及解决思路分享
  6. nginx lua调用redis和mongo
  7. HDU 4487 Maximum Random Walk
  8. LeetCode 78. 子集(回溯)
  9. int?id与id??1 的意思
  10. 计算机控制pid控制实验,计算机控制实验三数字PID调节器算法的研究
  11. 换行符‘\n’和回车符‘\r’
  12. 4款深度学习框架简介,初学者该如何选择?
  13. java爬虫框架_Python,爬虫开发的不二选择
  14. 论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?
  15. python基础--集合
  16. python返回对象_函数返回一个对象-python
  17. TCP 和 UDP 的区别 TCP 和 UDP 详解
  18. python 两点曲线_ECC椭圆曲线加密算法:ECDH 和 ECDSA
  19. 摔手机问题--第九届蓝桥杯
  20. esp32 鸿蒙,ESP8266最佳开发板--ESP-LAUNCHER开发板评测

热门文章

  1. UVA 694-The Collatz Sequence
  2. 图片:jpg png gif bmp 区别(四)
  3. 计算机组成原理二进制地址码,计算机组成原理第四章第三讲.ppt
  4. 卡内基·梅隆大学新提出AdaScale:自适应缩放实现视频对象实时检测算法
  5. 9600kf功耗和温度评测_i5-9400F与i5-9600KF性能差距大吗?i5 9600KF和9400F区别对比
  6. 0元包邮 | 多传感器融合感知知识导图
  7. 动手学pytorch之通俗易懂何为卷积-深度AI科普团队
  8. 为什么沿梯度方向,函数变化最快???
  9. 逻辑回归(LR)个人学习总结篇
  10. 两种贝塞尔曲线选点方法的对比