codevs1227 方格取数2 注意数组啊啊啊啊啊啊啊啊啊啊
一开始T了一组RE了一组,实在找不出错来,就把数组加了一个0竟然就多A了一组。很惊讶的又加了几个0最后竟然全A了!!!
懒得做了,改的是之前的那个蚯蚓的游戏问题。还是需要拆点,至于为什么不能重复走结点,很容易想吧。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct charge{
int u,v,cost,c,next;
}f[];
int n,m,k,num=,cnt=,point[],q[],pre[],dist[];
bool vis[];
void insect(int x,int y,int co,int bei)
{
f[cnt].u=x;f[cnt].v=y;f[cnt].cost=bei;f[cnt].c=co;
f[cnt].next=point[x];point[x]=cnt++;
f[cnt].u=y;f[cnt].v=x;f[cnt].cost=-bei;f[cnt].c=;
f[cnt].next=point[y];point[y]=cnt++;
}
bool spfa(int begin,int end)
{
int mp,a,b,head=,tail=;
memset(q,,sizeof(q));
memset(pre,0xff,sizeof(pre));
memset(dist,0x7f,sizeof(dist));
memset(vis,,sizeof(vis));
q[]=begin; dist[begin]=; vis[begin]=;
while (head<=tail)
{
a=q[head];
vis[a]=;
mp=point[a];
while (mp>=)
{
if (f[mp].c>){
b=f[mp].v;
if (dist[b]>dist[a]+f[mp].cost)
{
dist[b]=dist[a]+f[mp].cost;
pre[b]=mp;
if (!vis[b]){vis[b]=;tail++;q[tail]=b;}
}
}
mp=f[mp].next;
}
head++;
}
return dist[end]!=;
}
int MCMF(int begin,int end)
{
int ans=,mp,i,flow,flowsum=;
while (spfa(begin,end))
{
flow=;
for (i=pre[end];i!=-;i=pre[f[i].u])
if (f[i].c<flow) flow=f[i].c;
for (i=pre[end];i!=-;i=pre[f[i].u])
{
f[i].c-=flow;
f[i^].c+=flow;
}
ans+=dist[end];
flowsum+=flow;
}
return ans;
}
int main()
{
scanf("%d %d\n",&n,&k);
int i,a,b,c,j,ff;
memset(point,0xff,sizeof(point));
insect(,,k,);
scanf("%d",&c); num+=; insect(,,,); insect(,,,-c);
for (i=;i<=n;++i)
{
scanf("%d",&c); num+=;
insect(,num-,,); insect(num-,num-,,);
insect(num-,num,,-c);
}
ff=;
for (i=;i<=n;++i)
{
scanf("%d",&c); num+=; insect(ff,num-,,); insect(num-,num,,-c);
for (j=;j<=n;++j)
{
ff+=;
scanf("%d",&c); num+=;
insect(num-,num-,,); insect(ff,num-,,);
insect(num-,num,,-c);
}
ff=((i-)*n*)+;
}num++;
for (i=;i<=n;++i)
insect((n-)*n*++i*,num,,);
printf("%d\n",-*MCMF(,num));
return ;
}
codevs1227 方格取数2 注意数组啊啊啊啊啊啊啊啊啊啊的更多相关文章
- [CodeVs1227]方格取数2(最大费用最大流)
网络流24题的坑还没填完,真的要TJ? 题目大意:一个n*n的矩阵,每格有点权,从(1,1)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来,该格子的数就变成0,这样一共走 ...
- codevs1227:方格取数2
题目描述 Description 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= )现在从(,)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来,该 ...
- 方格取数(简单版)+小烈送菜(不知道哪来的题)-----------奇怪的dp增加了!
一.方格取数: 设有N*N的方格图(N<=20),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0. 某人从图的左上角的A(1,1) 点出发,可以向下行走,也可以向右走,直到到达右下 ...
- vijos 1563 疯狂的方格取数
P1653疯狂的方格取数 Accepted 标签:天才的talent[显示标签] 背景 Due to the talent of talent123,当talent123做完NOIP考了两次的二取 ...
- HDU-1565 方格取数(1)
http://acm.hdu.edu.cn/showproblem.php?pid=1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Me ...
- HDU1565 方格取数 &&uva 11270 轮廓线DP
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- hdu 1565 方格取数(1) 状态压缩dp
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 方格取数(dp)
方格取数 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 4[提交][状态][讨论版][命题人:quanxing] 题目描述 设有N×N的方格图,我们在其中的某些方格中填入正整 ...
- Hdu-1565 方格取数(1) (状态压缩dp入门题
方格取数(1) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
随机推荐
- #include <NOIP2008 Junior> 双栈排序 ——using namespace wxl;
题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操作b 如果栈S1 ...
- Quicksum-S.B.S.
quicksum Queation: Given a string of digits, find the minimum number of additions required for the s ...
- C++ 基础笔记(一)
解释型和编译型 解释型: 边解释边执行,翻译成机器代码后就执行. 编译型: 整篇代码编译成机器码后,保存在可执行文件中,然后启动该程序文件,运行获得结果. Hello World #include & ...
- java 14 -1 正则表达式
正则表达式:符合一定规则的字符串. 1.判断QQ号码是否正确的案例: public class RegexDemo2 { public static void main(String[] args) ...
- Android SQLite (二) 基本用法
在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的. 一 ...
- 30Springd的包扫描——<context:component-scan base-package=” ”/>
在context中配置 如:在base-package指明一个包: <context:component-scan base-package="cn.edu.dao"/> ...
- Entity Framework4.0 (一)概述(EF4 的Database First方法)
转自:http://www.cnblogs.com/marksun/archive/2011/12/15/2289582.html Entity Framework4.0(以后简称:EF4),是Mic ...
- HTML5新特性及详解
什么是HTML5:HTML5 是下一代的HTML,将成为 HTML.XHTML 以及 HTML DOM 的新标准. 为 HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 J ...
- 【转】【MySQL】SQLSTATE详解
根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值.SQLSTATE 值是包含五个字符的字符串 . ...
- angularjs中只显示选中的radio的值
angularjs中,只显示选中的radio的值.主要是相同的radio,name属性值要相同还有ng-model的值要相同,同时要指定value值.这样选中的时候就会在下面的div中显示选中的值了. ...