当前位置: 首页 > news >正文

学网站设计和平面设计网站做多个产品

学网站设计和平面设计,网站做多个产品,网站后台文件名,百度网盘app下载安装费用流线段树 看见这个题我们马上就能想到费用流#xff0c;设立源汇#xff0c;分别向每个点连接容量为1费用为0的边#xff0c;然后相邻的点之间连边#xff0c;费用为点权#xff0c;跑费用流就行了#xff0c;但是很明显这样会超时#xff0c;那么我们要优化一下线段树 看见这个题我们马上就能想到费用流设立源汇分别向每个点连接容量为1费用为0的边然后相邻的点之间连边费用为点权跑费用流就行了但是很明显这样会超时那么我们要优化一下我们观察费用流的过程发现对于点与点之间的边每次取一段区间相当于把正向边改为反向边费用变负于是我们可以用线段树来模拟这个过程像费用流一样贪心地选取区间的最大子段和然后取反每次取k次然后恢复。这样就好了 但是写的时候有很多问题比如如何返回一个区间结构体参考了popoqqq大神的代码发现我们可以通过重载小于号直接对结构体取max这样就十分好写了 然后这道题有点卡常一定要在重载的时候把传入参数变成const引用这样在cf上快了200ms 这就是传说中的五倍经验吗 #includebits/stdc.h using namespace std; const int N 100010; namespace IO {const int Maxlen N * 50;char buf[Maxlen], *C buf;int Len;inline void read_in(){Len fread(C, 1, Maxlen, stdin);buf[Len] \0;}inline void fread(int x) {x 0;int f 1;while (*C 0 || 9 *C) { if(*C -) f -1; C; }while (0 *C *C 9) x (x 1) (x 3) *C - 0, C;x * f;}inline void read(int x){x 0;int f 1; char c getchar();while(c 0 || c 9) { if(c -) f -1; c getchar(); }while(c 0 c 9) { x (x 1) (x 3) c - 0; c getchar(); }x * f;}inline void read(long long x){x 0;long long f 1; char c getchar();while(c 0 || c 9) { if(c -) f -1; c getchar(); }while(c 0 c 9) { x (x 1ll) (x 3ll) c - 0; c getchar(); }x * f;} } using namespace IO; struct data {int l, r, v;data() {}data(int l, int r, int v) : l(l), r(r), v(v) {}friend bool operator (const data a, const data b) { return a.v b.v; }friend data operator (const data a, const data b) { return data(a.l, b.r, a.v b.v); } }; struct node {data lmax, rmax, mx, mn, lmin, rmin, sum;int tag;node() {}node(int x, int v) {lmax rmax mx mn lmin rmin sum data(x, x, v);}friend node operator (const node a, const node b) {node c;if(a.tag -1) return b;if(b.tag -1) return a;c.tag 0;c.sum a.sum b.sum;c.lmax max(a.lmax, a.sum b.lmax);c.lmin min(a.lmin, a.sum b.lmin);c.rmax max(b.rmax, a.rmax b.sum);c.rmin min(b.rmin, a.rmin b.sum);c.mx max(max(a.mx, b.mx), a.rmax b.lmax);c.mn min(min(a.mn, b.mn), a.rmin b.lmin);return c; } } tree[N 2], st[21]; int n, q; int a[N]; void paint(node o) {swap(o.lmax, o.lmin);swap(o.rmax, o.rmin);swap(o.mx, o.mn);o.sum.v * -1;o.lmax.v * -1;o.lmin.v * -1;o.rmax.v * -1;o.rmin.v * -1;o.mx.v * -1;o.mn.v * -1;o.tag ^ 1; } void pushdown(int x) {if(tree[x].tag 0) return;paint(tree[x 1]);paint(tree[x 1 | 1]);tree[x].tag ^ 1; } void build(int l, int r, int x) {if(l r){tree[x] node(l, a[l]);return;}int mid (l r) 1;build(l, mid, x 1);build(mid 1, r, x 1 | 1);tree[x] tree[x 1] tree[x 1 | 1]; } node query(int l, int r, int x, int a, int b) {if(l b || r a) return tree[0];if(l a r b) return tree[x];pushdown(x); int mid (l r) 1;return (query(l, mid, x 1, a, b)) (query(mid 1, r, x 1 | 1, a, b)); } void reverse(int l, int r, int x, int a, int b) {if(l b || r a) return;if(l a r b){paint(tree[x]);return;}pushdown(x);int mid (l r) 1;reverse(l, mid, x 1, a, b);reverse(mid 1, r, x 1 | 1, a, b);tree[x] tree[x 1] tree[x 1 | 1]; } void update(int l, int r, int x, int pos, int v) {if(l r){tree[x] node(l, v);return;}pushdown(x);int mid (l r) 1;if(pos mid) update(l, mid, x 1, pos, v);else update(mid 1, r, x 1 | 1, pos, v);tree[x] tree[x 1] tree[x 1 | 1]; } int main() {read_in();fread(n);for(int i 1; i n; i) fread(a[i]);tree[0].tag -1;build(1, n, 1);fread(q);while(q--){int opt, l, r, v;fread(opt);if(opt 0){fread(l);fread(v);update(1, n, 1, l, v);}if(opt 1){fread(l);fread(r);fread(v);int sum 0, top 0;while(v--){node ans query(1, n, 1, l, r);if(ans.mx.v 0) break;reverse(1, n, 1, ans.mx.l, ans.mx.r);node tmp query(1, n, 1, ans.mx.l, ans.mx.r);st[top] ans;sum ans.mx.v;}printf(%d\n, sum);for(int i top; i; --i) reverse(1, n, 1, st[i].mx.l, st[i].mx.r);}} return 0; } View Code   转载于:https://www.cnblogs.com/19992147orz/p/7549892.html
http://www.zqtcl.cn/news/153989/

相关文章:

  • 网站知识安卓studio制作一个简单app
  • 一个购物网站开发语言外贸企业
  • 给一个装修公司怎么做网站做网站打开图片慢
  • 互联网三网合一网站建设银川网站建站公司
  • 网站开发需要什么基础网站建设积分
  • 安平做网站的电话装修公司哪家产品好
  • 网站建设内部链接精选资料
  • 廊坊市网站中山网站建设排名
  • 济南网站APPwordpress零基础建站教程视频
  • nodejs和wordpress福建seo快速排名优化
  • 网站开发的主要工作步骤页面跳转流程图
  • 医院网站源码 asp网站店招用什么软件做的
  • 怎样做网站权重龙岗网站制作讯息
  • 谁可以教我做网站网页编辑工具是什么
  • 义乌网站建设费用多少建设网站套餐
  • 济南高端网站环保网站建设项目备案系统
  • 办公门户网站模板WordPress怎么两个标题
  • 做网站 域名是怎么回事邢台163交友手机端
  • 台州免费做网站公司资质查询官方网站
  • 网站开发常用数据库江苏大才建设集团网站
  • WordPress多站点恢复石家庄住房城乡建设网站
  • 怎么免费做网站教程手机网站开发项目
  • 临沂做网站需要多少钱甘肃兰州地震最新消息刚刚
  • 怎么把网站封包做appwordpress葬爱导航
  • 浙江省建设厅门户网站菠菜网站如何做推广
  • 飞鸽网站建设网站建设源代码交付
  • 阿里云服务器做盗版电影网站wordpress密码访问
  • 本机可以做网站的服务器吗做磨毛布内销哪个网站比较好
  • 免费建站系统wordpress一个网站需要什么
  • 移动端网站制作的有哪些要求百度广告投放价格表