有关数据范围

多好的一道网络流啊;

然而你看得到的m<=1600了吗?

然而。。。

没错m=5000......

然后我这个点就挂了。。。

唉,下次注意吧,尽量把数组开大吧,

代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 #define INF 2147483000
 4 using namespace std;
 5 int n,m,S,T;
 6 struct ss{
 7     int next,to,w,cp;
 8 }x[100410];
 9 int first[4010],num;
10 int dep[4010];
11 int que[200000];
12 char s[1010];
13 void bui_(int ,int ,int );
14 void build(int ,int ,int );
15 int bfs();
16 int dfs(int ,int );
17 int main()
18 {
19     freopen("splay.in","r",stdin);
20     freopen("splay.out","w",stdout);
21     int i,j,k,ans=0,add;
22     scanf("%d%d",&n,&m);
23     S=0,T=3*n+1;
24     scanf("%s",s+1);
25     for(i=1;i<=n;i++){
26         if(s[i]==‘J‘)
27             bui_(S,i,1);
28         if(s[i]==‘T‘)
29             bui_(i,T,1);
30         bui_(i,i+n,1);
31         bui_(i+n,i+2*n,1);
32     }
33     for(i=1;i<=m;i++){
34         scanf("%d%d",&j,&k);
35         if(s[j]==‘J‘&&(s[k]==‘J‘||s[k]==‘E‘))
36             bui_(j,k+n,1);
37         if(s[j]==‘J‘&&s[k]==‘T‘)
38             bui_(2*n+j,k,1);
39         if(s[j]==‘E‘&&s[k]==‘T‘)
40             bui_(2*n+j,k,1);
41         if(s[k]==‘J‘&&(s[j]==‘J‘||s[j]==‘E‘))
42             bui_(k,j+n,1);
43         if(s[k]==‘J‘&&s[j]==‘T‘)
44             bui_(2*n+k,j,1);
45         if(s[k]==‘E‘&&s[j]==‘T‘)
46             bui_(2*n+k,j,1);
47     }
48     while(bfs())
49         while(add=dfs(S,INF))
50             ans+=add;
51     printf("%d",ans);
52     return 0;
53 }
54 void bui_(int f,int t,int d){
55     build(f,t,d);x[num].cp=num+1;
56     build(t,f,0);x[num].cp=num-1;
57 }
58 void build(int f,int t,int d){
59     x[++num].next=first[f];
60     x[num].to=t;
61     x[num].w=d;
62     first[f]=num;
63 }
64 int bfs(){
65     memset(dep,0,sizeof(dep));
66     int h=0,t=1,j;
67     que[t]=S;
68     while(h<t){
69         ++h;
70         for(j=first[que[h]];j;j=x[j].next)
71             if(x[j].w&&x[j].to!=S&&!dep[x[j].to]){
72                 dep[x[j].to]=dep[que[h]]+1;
73                 que[++t]=x[j].to;
74             }
75     }
76     if(dep[T])return 1;
77     return 0;
78 }
79 int dfs(int now,int min){
80     int j,re=0;
81     if(now==T)
82         return min;
83     for(j=first[now];j;j=x[j].next)
84     {
85         if(x[j].w&&dep[x[j].to]==dep[now]+1){
86             re=dfs(x[j].to,min<x[j].w?min:x[j].w);
87             if(re){
88                 x[j].w-=re;
89                 x[x[j].cp].w+=re;
90                 return re;
91             }
92             dep[x[j].to]=0;
93         }
94     }
95     return re;
96 }

。。。。。。

时间: 2024-10-06 01:56:41

有关数据范围的相关文章

记一次MySQL找回用户数据

事情经过 有天,我们公司外区的一个销售C说他8月3号以前的工作流记录找不到了.问清缘由,原来是更新了微信号(我们公司的工作流是基于企业微信开发的).经过分析,微信号和流程数据并没什么关系,所以初步得出结论:本来只需要更新微信号的,结果我们公司的流程系统管理员把用户先删除,再创建了新的用户. 解决过程 1.首先想到的是直接从定时备份数据里面找回原来的用户ID,结果发现系统只备份了十天的记录,而工作流系统上显示销售C只有8月3号以后的流程记录,距今已经40多天,从自动备份的数据里已经无法恢复. 2.

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

Day4 - 迭代器&amp;生成器、装饰器、Json &amp; pickle 数据序列化、软件目录结构规范

---恢复内容开始--- 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 需求:列表a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求把列表里的每个值加1 1 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 2 b = [] 3 for i in a: 4 b.append(i+1) 5 a = b 6 print(a) 普通青

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

MySQL(九)之数据表的查询详解(SELECT语法)二

上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1)创建数据表suppliers 前面已经有一张表是book表,我们在建立一张suppliers(供应商)表和前面的book表对应. 也就是说 让book中s_id字段值指向suppliers的主键值,创建一个外键约束关系. 其实这里并没有达到真正的外键约束关系,只是模拟,让fruits中的s_id中

C#如何拿到从http上返回JSON数据?

在实际开发中,我们经常会使用到API,所谓API一般就是一个地址,我们称之为接口.然后我们通过用C#对这地址发送请求,请求后,服务器就会给我们返回数据,一般是XML或者JSON,这里我们主要讲述的是JSON. 为了演示,我们这里准备了一个接口,这是一个查询物流的接口.(读者读到这篇文章的时候,接口可能有效,也可能失效,因为接口是网上找的,不是笔者自己写的,但是原理是一样的.) 接口:  http://www.kuaidi100.com/query?type=快递公司编码&postid=物流单号

C#中导出数据到Excel表格中

之前PM交给我一个自动化测试的Case,让我抓取页面上的数据到Excel表格中,刚好又接了一个之前人家做的系统, 刚好看到可以用NPOI导数据,就动手试试,成功导出. 由于鄙人比较菜,也比较懒, 怕自己忘记了,今天就总结一下,以防下次用可以参考. 1.要使用NPOI,首先需要在Project中Install NPOI的 Package. 右键点击Project------>Manage NuGet Packages---->Search NPOI----->点击搜索到的NPOI然后点击等

Oracle in 查询数据

问题描述: 查询所有的数据,查询结果:146360 select count(1) from bank_cde; in查询的获取部分数据,查询结果 :73080 select count(1) from bank_cde t where t.belongcode2 in('ABC','BCOM','BOC','CCB','CEB','CGB','CIB','CITIC','CMBC','ICBC','PAB','POST','SPDB'); not in查询数据,结果为0 select coun

SQL基础:数据表的创建

1. 先选择创建表所在的数据库 2. 创建表 3. 查看表是否创建成功 4. 主键:要求主键列的数据唯一,且不允许为空.主键能够唯一的标识表中的每一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度. 主键分为:单字段主键和多字段联合主键. 4.1 单字段主键 4.1.1 定义方式一:在定义列的同时指定主键 4.1.2 定义方式二:在定义完所有的列之后指定主键 4.2 多字段联合主键 5. 使用外键约束 外键用来在两个表之间建立连接,可以是一列或多列.一个表的外键可以是

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco