北京大学在线在线提交系统(Online Judge)Problem 1000(就是输入2个整数然后输出其和)新解 :网络流

gnuljf 2008-02-24 05:58:12
Problem 1000是很简单的一个问题,就是要求从标准输入设备输入2个整数然后在标准输出设备上输出它们的和。
(问题原地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1000)
下面是该问题讨论区发表的一个帖子给出一个解决办法,实在看不明白,有哪位高人来指点一下。
看该贴的原标题,这个解法跟网络相关?要熟悉了网络编程后才能弄懂?

//Problem 1000新解 :网络流
#include<stdio.h>
#include<string.h>

int c[4][4],f[4][4];
bool b[4];
int ans;

void init()
{
int a,b;
scanf("%d%d",&a,&b);
c[0][1]=a;c[1][3]=a;
c[0][2]=b;c[2][3]=b;
}

bool find(int x)
{
if(x==3)return true;
for(int i=0;i<4;i++)
{
if(f[x][i]<c[x][i]&&!b[i])
{
b[i]=true;
if(find(i))
{
f[x][i]++;f[i][x]--;
return true;
}
}
}
return false;
}

void process()
{
ans=0;
memset(b,false,sizeof(b));
b[0]=true;
while(find(0))
{
memset(b,false,sizeof(b));
b[0]=true;
ans++;
}
}

int main()
{
init();
process();
//if(ans!=a+b)ans=a+b;
printf("%d\n",ans);
return 0;
}
...全文
164 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhiyubuaa 2008-02-24
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(void)
{
int a, b;
while(scanf("%d %d\n", &a, &b) == 2)
printf("%d\n", a+b);

return 0;
}

64,172

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧