A+B其实是一个博大精深的问题,以下是各种写法

#include<bits/stdc++.h>
#define INF 0x7fffffff
using namespace std;
int a,b,cnt;
int ans[10],h[10],head[10],father[10],bit[10],mp[3][3],w[3],c[3],f[3];
struct data1{int to,next,v;}e[10];
struct data2{int x,y,v;}ed[10];
struct data3{int l,r,sum;}tr[10];
void insert(int u,int v,int w)
{cnt++;e[cnt].to=v;e[cnt].v=w;e[cnt].next=head[u];head[u]=cnt;}
bool bfs()
{int q[10],t=0,w=1,i,now;memset(h,-1,sizeof(h));q[0]=h[0]=0;while(t<w){now=q[t];t++;i=head[now];while(i){if(e[i].v&&h[e[i].to]==-1){q[w++]=e[i].to;h[e[i].to]=h[now]+1;}i=e[i].next;}}if(h[3]==-1)return 0;return 1;}
int dfs(int x,int f)
{if(x==3)return f;int w,used=0,i=head[x];while(i){if(e[i].v&&h[e[i].to]==h[x]+1){w=f-used;w=dfs(e[i].to,min(e[i].v,w));e[i].v-=w;e[i^1].v+=w;used+=w;if(used==f)return f;}i=e[i].next;}if(!used)h[x]=-1;return used;}
void dinic()
{cnt=1;memset(head,0,sizeof(head));insert(0,1,a);insert(1,0,0);insert(1,3,INF);insert(3,1,0);insert(0,2,b);insert(2,0,0);insert(2,3,INF);insert(3,2,0);while(bfs()){ans[1]+=dfs(0,INF);}}
void spfa()
{cnt=0;memset(head,0,sizeof(head));insert(0,1,a);insert(1,2,b);int dis[3],q[10],t=0,w=1,i,now;bool inq[10];memset(dis,127/3,sizeof(dis));memset(inq,0,sizeof(inq));q[0]=dis[0]=0;inq[0]=1;while(t<w){now=q[t];t++;i=head[now];while(i){if(e[i].v+dis[now]<dis[e[i].to]){dis[e[i].to]=e[i].v+dis[now];if(!inq[e[i].to]){inq[e[i].to]=1;q[w++]=e[i].to;}                      }i=e[i].next;}inq[now]=0;}ans[2]=dis[2];}
void floyd()
{memset(mp,127/3,sizeof(mp));mp[1][2]=a;mp[2][3]=b;for(int k=1;k<=3;k++)for(int i=1;i<=3;i++)for(int j=1;j<=3;j++)mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);ans[3]=mp[1][3];}
void seg_build(int k,int s,int t)
{tr[k].l=s;tr[k].r=t;if(s==t)return;int mid=(s+t)>>1;seg_build(k<<1,s,mid);seg_build(k<<1|1,mid+1,t);tr[k].sum=tr[k<<1].sum+tr[k<<1|1].sum;}
void seg_change(int k,int x,int y)
{int l=tr[k].l,r=tr[k].r;tr[k].sum+=y;if(l==r)return;int mid=(l+r)>>1;if(y<=mid)seg_change(k<<1,x,y);else seg_change(k<<1|1,x,y);}
int seg_ask(int k,int x,int y)
{int l=tr[k].l,r=tr[k].r;if(x==l&&y==r)return tr[k].sum;int mid=(l+r)>>1;if(mid>=y)return seg_ask(k<<1,x,y);else if(mid<x)return seg_ask(k<<1|1,x,y);else return seg_ask(k<<1,x,mid)+seg_ask(k<<1|1,mid+1,y);}
void segtree()
{seg_build(1,1,2);seg_change(1,1,a);seg_change(1,1,b);ans[4]=seg_ask(1,1,2);}
int lowbit(int x){return x&(-x);}
int bit_ask(int x)
{int s=0;while(x){s+=bit[x];x-=lowbit(x);}return s;}
void bit_change(int x,int y)
{while(x<=2){bit[x]+=y;x+=lowbit(x);}}
void bitree()
{bit_change(1,a);bit_change(2,b);ans[5]=bit_ask(2);}
int find(int x){return x==find(x)? x:father[x]=find(father[x]);}
bool cmp(data2 a,data2 b){return a.v<b.v;}
void kruskal()
{ed[1].x=0;ed[1].y=1;ed[1].v=a;ed[2].x=1;ed[2].y=2;ed[2].v=b;sort(ed+1,ed+3,cmp);for(int i=0;i<=2;i++)father[i]=i;for(int i=1;i<=2;i++){int x=father[ed[i].x],y=father[ed[i].y];if(x!=y){father[x]=y;ans[6]+=ed[i].v;}}}
void dp()
{w[1]=w[2]=1;c[1]=a;c[2]=b;for(int i=1;i<=2;i++)for(int v=2;v>=w[i];v--)f[v]=max(f[v],f[v-w[i]]+c[i]);ans[7]=f[2];}
int main()
{scanf("%d%d",&a,&b);dinic();//cout<<ans[1]<<endl;spfa();//cout<<ans[2]<<endl;floyd();//cout<<ans[3]<<endl;segtree();//cout<<ans[4]<<endl;bitree();//cout<<ans[5]<<endl;kruskal();//cout<<ans[6]<<endl;dp();//cout<<ans[7]<<endl;//for(int i=1;i<=7;i++)ans[0]+=ans[i];//ans[0]/=7;printf("%d",ans[1]);return 0;}

A+B的各种写法(不是couta+b;)相关推荐

  1. Python脚本语言写法

    Python脚本语言写法 脚本语言的开始行,是指文件中的代码用什么可执行程序去运行它,就这么简单. #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的pyth ...

  2. Kotlin 中 switch 写法

    在Kotlin 中并没有switch 操作符 , 取而代之的是when java的写法: int i= 5;switch (i){case 5:System.out.print("5&quo ...

  3. 默的各种写法图片_SEO标题写法?

    对于网站优化来说,标题无疑是最重要的,标题能够在一定程度上起到吸引用户和引导用户行为的重要作用,对于一个好的网站标题来说,应该具备以下三个作用:引起注意.概括整体内容.吸引用户阅读兴趣,做好这几个方面 ...

  4. props写法_简单理解vue中Props属性

    本文实例为大家解析了vue中Props的属性,供大家参考,具体内容如下 使用 Props 传递数据 组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据.可以使用 pr ...

  5. java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解

    1. 插入 INSERT sql命令(命令里通过#{}获取对象属性) EG: INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{p ...

  6. Gridview][UpdateCommand的写法要点]

    在ASP.NET2.0中的GridView为我们浏览更新数据提供了一个方便的途径.我们只需要添加一个sqldatasouce控件和一个GridView,再为sqldatasource写上正确的Upda ...

  7. 函数指针--Nginx和Redis中两种回调函数写法

    1.Nginx和Redis中两种回调函数写法 #include <stdio.h>//仿Nginx风格 //结构外声明函数指针类型 typedef void (*ngx_connectio ...

  8. 26个音序的正确写法和占格_部编语文汉语拼音音序表,示范朗读+视频教学

    部编语文<汉语拼音音序表> ♬点击上方绿标收听音频 这位老师教的有点喜感,但读得基本是正确的. <汉语拼音方案>给每个字母规定了名称音读法,这是朗读字母表.小学汉语拼音字母表教 ...

  9. 微信小程序换行,空格的写法

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 1.文本超出部分自动换行,前后对比 实现代码: flex-wrap: warp;white-space ...

  10. react按需加载(getComponent优美写法),并指定输出模块名称解决缓存(getComponent与chunkFilename)...

    react配合webpack进行按需加载的方法很简单,Route的component改为getComponent,组件用require.ensure的方式获取,并在webpack中配置chunkFil ...

最新文章

  1. MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-4
  2. Python之面向对象类和对象
  3. 联想笔记本电脑,重新安装系统之U盘启动方法
  4. 特征提取方法 SIFT,PCA-SIFT,GLOH,SURF
  5. Linux中文件操作
  6. kafka topic常用命令
  7. 排序算法 --- 快速排序
  8. Java 注解知识总结
  9. 验证码图片显示不出来怎么办_pr 的蒙版不显示了怎么办?
  10. 牛顿法/拟牛顿法/DFP/BFGS/L-BFGS算法
  11. Apache多站点配置
  12. 【Elasticsearch】es 快照 snapshot 操作实战
  13. Python垃圾回收和内存管理
  14. 零基础学python-看完这篇,零基础也知道怎么学Python
  15. [转载] 机器学习之主成分分析PCA(Python实现)
  16. 量化投资的现状和前景
  17. mysql field in set_MySQL中的find_in_set()函数使用技巧心得与应用场景总结
  18. 计算机软件 如何评正高职称,正高职称评审条件
  19. 小米路由器AX9000刷写OpenWrt官网发布的固件
  20. 直播软件源码,实现一个简单的直播功能

热门文章

  1. javascript机器学习
  2. 逆水寒怎么找回服务器之前的角色,逆水寒12月27日服务器合并公告 逆水寒合服问题解答一览...
  3. 【修改电脑版微信提示音】
  4. mysql中ddl和ddm_DDL与DML问题
  5. php生成字符画,超易用的字符画在线生成器,非常适合制作STEAM展柜。
  6. OSM(OpenStreetMap)使用简述
  7. putty使用SSH密钥登录Linux实例
  8. 20190118 阿耐---《艰难的制造》
  9. python-QQ群扫码登录(QQ群验证)
  10. git config之后仍无法commit,提示 “fatal: empty ident name“