ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:74.04KB ,
资源ID:2667819      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2667819.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2012福建省信息学奥林匹克CCF-NOIP夏令营第六天训练(附解题思路及参考程序).doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2012福建省信息学奥林匹克CCF-NOIP夏令营第六天训练(附解题思路及参考程序).doc

1、完整版)2012福建省信息学奥林匹克CCF NOIP夏令营第六天训练(附解题思路及参考程序) 2012福建省信息学奥林匹克CCF NOIP夏令营第六天训练 (附解题思路及参考程序) 问题名称 文件名 输入文件 输出文件 时限 分值 地震逃生 earthquake earthquake。in earthquake。out 1s 100 追查坏牛奶 milk milk。in milk。out 1s 100 奶牛的电信 telecow telecow.in telecow。out 1s 100 电车

2、tram tram.in tram.out 1s 100 排序 sort sort。in sort.out 1s 100 内存限制均为256M (前3题为网络流练习题,选做。今天下午主要练习第4,,第5题,第一题可以用来尝试编写上午学的网络流算法。) *地震逃生(earthquake) 【问题描述】 汶川地震发生时,四川**中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边。1号点为教室,n号点为安全地带,每条边都只能容纳一定量的学生,超过楼就要倒塌,由于人数太多,校长决定让同学们分成几批逃生,只

3、有第一批学生全部逃生完毕后,第二批学生才能从1号点出发逃生,现在请你帮校长算算,每批最多能运出多少个学生,x名学生分几批才能运完。 【输入文件】 第一行3个整数n,m,x(x<2^31,n<=200,m<=2000);以下m行,每行三个整数a,b,c(a1,a〈〉b,0描述一条边,分别代表从a点到b点有一条边,且可容纳c名学生。 【输出文件】 两个整数,分别表示每批最多能运出多少个学生,x名学生分几批才能运完。如果无法到达目的地(n号点)则输出“Orz Ni Jinan Saint Cow!” 【样例输入】 6 7 7 1 2 1 1 4 2 2 3 1 4 5 1 4

4、3 1 3 6 2 5 6 1 【样例输出】 3 3 【注释】 比如有图 1 2 100 2 3 1 100个学生先冲到2号点,然后1个1个慢慢沿2—3边走过去 18神牛规定这样是不可以的…… 也就是说,每批学生必须同时从起点出发,并且同时到达终点 *追查坏牛奶(milk) 【问题描述】 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候,有三聚氰胺的牛奶已经进入了送货网。这个送货网很大,而且关系复杂。你知道这批牛奶要发给哪个零售商,但是要把这批牛奶送到他手中有许多种途径。送货网由一些仓库和运

5、输卡车组成,每辆卡车都在各自固定的两个仓库之间单向运输牛奶。在追查这些有三聚氰胺的牛奶的时候,有必要保证它不被送到零售商手里,所以必须使某些运输卡车停止运输,但是停止每辆卡车都会有一定的经济损失.你的任务是,在保证坏牛奶不送到零售商的前提下,制定出停止卡车运输的方案,使损失最小。 【输入文件】 第一行: 两个整数N(2<=N<=32)、M(0〈=M〈=1000), N表示仓库的数目,M表示运输卡车的数量。仓库1代 表发货工厂,仓库N代表有三聚氰胺的牛奶要发往的零售商。 第2。.M+1行: 每行3个整数Si,Ei,Ci.其中Si,Ei表示这 辆卡车的出发仓库,目的仓库。Ci(0 〈= C i

6、 <= 2,000,000) 表示让这辆卡车停止运输的损失。 【输出文件】 两个整数C、T:C表示最小的损失,T表示在损失最小的前提下,最少要停止的卡车数。 【样例输入】 4 5 1 3 100 3 2 50 2 4 60 1 2 40 2 3 80 【样例输出】 60 1 *奶牛的电信(telecow) 【问题描述】 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流。这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,..。,a(c),且a1与a2相连,a2与a3相连,等等,那么电脑a1和a(c)就可以互

7、发电邮。 很不幸,有时候奶牛会不小心踩到电脑上,农夫约翰的车也可能碾过电脑,这台倒霉的电脑就会坏掉。这意味着这台电脑不能再发送电邮了,于是与这台电脑相关的连接也就不可用了. 有两头奶牛就想:如果我们两个不能互发电邮,至少需要坏掉多少台电脑呢?请编写一个程序为她们计算这个最小值. 以如下网络为例:        1*        /        3 - 2* 这张图画的是有2条连接的3台电脑。我们想要在电脑1和2之间传送信息。电脑1与3、2与3直接连通。如果电脑3坏了,电脑1与2便不能互发信息了. 【输入文件】 第一行 四个由空格分隔

8、的整数:N,M,c1,c2。N是电脑总数(1<=N<=100),电脑由1到N编号。M是电脑之间连接的总数(1〈=M<=600)。最后的两个整数c1和c2是上述两头奶牛使用的电脑编号。连接没有重复且均为双向的(即如果c1与c2相连,那么c2与c1也相连)。两台电脑之间至多有一条连接.电脑c1和c2不会直接相连。 第2到M+1行 接下来的M行中,每行包含两台直接相连的电脑的编号。 【输出文件】 一个整数表示使电脑c1和c2不能互相通信需要坏掉的电脑数目的最小值。 【样例输入】 3 2 1 2 1 3 2 3 【样例输出】 1 电车(tram) 【问题描述】 在一个

9、神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能).在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口A到路口B最少需要下车切换几次开关。 【输入文件】 第一行有3个整数2〈=N〈=100,1〈=A,B<=N,分别表示路口的数量,和电车的起点,终点。 接下来

10、有N行,每行的开头有一个数字Ki(0<=Ki<=N-1),表示这个路口与Ki条轨道相连,接下来有Ki个数字表示每条轨道所通向的路口,开关默认指向第一个数字表示的轨道。 【输出文件】 输出文件只有一个数字,表示从A到B所需的最少的切换开关次数,若无法从A前往B,输出—1. 【样例输入】 3 2 1 2 2 3 2 3 1 2 1 2 【样例输出】 0 排序(sort) 【问题描述】 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列A,B,C,D 表示A〈B,B

11、能够根据这些关系确定这个数列的顺序。 【输入文件】 第一行有两个整数n,m,n表示需要排序的元素数量,2<=n〈=26,第1到n个元素将用大写的A,B,C,D..。.表示。m表示将给出的形如A

12、nconsistency found after 2 relations. 若根据这m个关系无法确定这n个元素的顺序,输出 Sorted sequence cannot be determined. (提示:确定n个元素的顺序后即可结束程序,可以不用考虑确定顺序之后出现矛盾的情况) 【样例输入】 1: 4 6 A〈B A

13、 Inconsistency found after 2 relations. 3: Sorted sequence cannot be determined. 地震逃生:基础的求最大流 题目大意: 给出n个点,m条边,求从点1到点n的最大流。 解题思路: 使用任意一种网络流算法皆可 参考程序: program earthquake; var n, m, stu, u, v, ans, add : longint; c : array[1。.202,1。.202]of longint; cover : array[1..202]of boolea

14、n; function min( a, b : longint ) : longint; begin if a 〈 b then min := a else min := b; end; function aug( x, low : longint ) : longint; var i, d : longint; begin aug := 0; if cover[x] then exit; cover[x] := true; if x = n the

15、n begin aug := low; exit; end; for i := 1 to n do if c[x][i] > 0 then begin d := aug( i, min( low, c[x][i] ) ); if d > 0 then begin dec( c[x][i], d ); inc( c[i][x], d ); aug := d; exit; end; end; en

16、d; begin assign( input, ’earthquake.in’ ); reset( input ); assign( output, 'earthquake.out’ ); rewrite( output ); readln( n, m, stu ); fillchar( c, sizeof(c), 0 ); while m〉0 do begin dec( m ); readln( u, v, ans ); inc( c[u][v], ans ); end; ans := 0; repeat for m

17、 1 to n do cover[m] := false; add := aug( 1, maxlongint ); inc( ans, add ); until add = 0; if ans=0 then writeln( ’Orz Ni Jinan Saint Cow!’ ) else writeln( ans, ’ ’, stu div ans + ord( stu mod ans 〈〉 0 ) ); close(input); close(output); end. 追查坏牛奶:求最小割,对容量的修改 题目大意: 有n个

18、点,m条边,删除每条边都有一定的损失,要使得点1与点n不再连通,求最小损失和损失最小的前提下最少需要删多少条边。 解题思路: 题目的本质是求最小割,最小割可通过最大流求得。 先考虑如何求最小损失? 将删除边的损失作为该边的容量,则图的最小割就是最小损失。 如何做到损失最小的前提下删边最小? 解题思路: 简单的想法:首先,让损失最小,在损失最小的方案中,求删边最少的最小割方案。比如,先求出最小损失为8,在最小损失为8的方案中,比起删3条边的优先选择删2条边的。 如何实现呢? 首先,我们注意到,如果将每条边的容量变为原先的1000倍,再把结果整除1000,最小损失的结果是不变的。

19、 进而,我们可以注意到,对于一个有500个边的图,在容量扩大1000倍之后,就算将每条边的容量+1,结果也是不变的,因为新增的流量在整除后将忽略不计。 解题思路: 于是,我们可以实现先比较损失再比较删边数的功能了。 以最多500个边的图为例,将容量为w的边的容量变为1000*w+1,结果会怎样呢? 首先,新图的最小割整除1000后就等于原先的最小割. 其次,对于原先容量相等的割,现在边数最小的才是最小割,只要将新图的最小割Mod 1000就可以得到最小割的边数了. 这道题最多有1000条边,所以将容量*1050+1作为新图的容量即可求解. 参考程序: { ID:asiape

20、a1 PROB:milk6 LANG:PASCAL } const fin='milk.in'; fout='milk。out'; type node=record s,t,c,num:longint; end; var tempmap,map:array[1..32,1.。32]of longint; vex:array[1。。10000]of node; put:array[1。。10000]of longint; n,e:longint; procedure qsor

21、t(s,t:longint); var i,j:longint; x:node; begin i:=s;j:=t;x:=vex[i]; while i

22、 vex[j]:=vex[i]; if i〈j then dec(j); end; vex[i]:=x; if s〈i-1 then qsort(s,i—1); if i+1〈t then qsort(i+1,t); end; procedure init; var i,v1,v2,f:longint; begin assign(input,fin);assign(output,fout); reset(input);rewri

23、te(output); readln(n,e); for i:=1 to e do begin readln(v1,v2,f); inc(map[v1,v2],f); vex[i]。s:=v1;vex[i]。t:=v2;vex[i].c:=f;vex[i].num:=i; end; qsort(1,e); end; function maxstream:longint; var f,c:longint;

24、 procedure findstream; var flag:array[1。.32]of boolean; have,pr:array[1..32]of longint; mi,i,max:longint; begin fillchar(flag,sizeof(flag),false); fillchar(have,sizeof(have),0); have[1]:=2000000000;pr[1]:=0; while true do

25、 begin max:=0;mi:=-1; for i:=1 to n do if (not flag[i])and(have[i]>max) then begin max:=have[i];mi:=i;end; if mi=—1 then exit; if mi=n then break; flag[mi]:=true; for i:=1 to n do

26、 if (not flag[i])and(map[mi,i]〉=have[i])and(max〉=have[i]) then begin have[i]:=map[mi,i]; if have[i]〉max then have[i]:=max; pr[i]:=mi; end; end; f:=have[n];i:=n; while

27、pr[i]〈>0 do begin dec(map[pr[i],i],f); inc(map[i,pr[i]],f); i:=pr[i]; end; end; begin f:=0;findstream;c:=0; while f<>0 do begin inc(c,f);f:=0;findstream;end; maxstream:=c; end; procedure calc;

28、var temp,f,i,total,j:longint; begin tempmap:=map;total:=0; f:=maxstream;write(f,’ ’); for i:=1 to e do if map[vex[i]。s,vex[i].t]=0 then begin temp:=f;dec(tempmap[vex[i]。s,vex[i]。t],vex[i]。c);map:=tempmap; f:=maxstream;

29、 if temp=f+vex[i].c then begin inc(total); put[total]:=vex[i].num; if f=0 then break; end else inc(tempmap[vex[i]。s,vex[i].t],vex[i]。c); end; writeln(total); for i:=1 to

30、total do begin for j:=i+1 to total do if put[i]>put[j] then begin temp:=put[i];put[i]:=put[j];put[j]:=temp;end; //writeln(put[i]); end; close(input);close(output); end; begin init; calc; end。 奶牛的电信:网络流构图

31、 题目大意: 有N个点,M条边,问最小删除多少个点才能使得点c1与点c2之间不再连通. 解题思路: 上一题中,我们求了如何删除最少的边,这题我们需要求的是删除最少的点。 所以只要把点拆成边就可以了。 构图: 设c1为源,c2为汇 我们将其余每个点u拆为两个点u1,u2,并连接〈u1,u2>,双方向容量为1 对于原图中的每条无向边拆为两条有向边,一条是u2到v1,一条是v2到u1,容量为正无穷 新图的最小割则为所求得最少删点数目 { ID:asiapea1 PROB:telecow LANG:PASCAL } var a,d:array[1..200,0

32、200]of longint; c2,c,cbak:array[1。。200,1.。200]of longint; b,bb:array[1.。100]of boolean; cut,ans,q,p:array[1。。200]of longint; maxflow,p1,p2,x,y,n,m,s,t,s2,t1,i:longint; procedure init; begin assign(input,’telecow.in');reset(input); read(n,m,s,t); s2:=s*2; t1:=t*2—1;

33、 for i:=1 to m do begin read(x,y); inc(d[x,0]); d[x,d[x,0]]:=y; inc(d[y,0]); d[y,d[y,0]]:=x; inc(a[x*2,0]); a[x*2,a[x*2,0]]:=y*2-1; c[x*2,y*2—1]:=999999999; inc(a[y*2-1,0]); a[y*2—1,a[y*2-1,0]]:=x*2; c[y*2-1,x*2]:=0; inc(a[y*2,0]); a[y*2

34、a[y*2,0]]:=x*2—1; c[y*2,x*2—1]:=999999999; inc(a[x*2-1,0]); a[x*2-1,a[x*2—1,0]]:=y*2; c[x*2-1,y*2]:=0; end; for i:=1 to n do begin inc(a[i*2—1,0]); a[i*2—1,a[i*2-1,0]]:=i*2; c[i*2-1,i*2]:=1; inc(a[i*2,0]); a[i*2,a[i*2,0]]:=i*2—1; c[i*2,i*2-1]:=0;

35、 end; cbak:=c; end; function find:boolean; var j:longint; begin fillchar(p,sizeof(p),255); p1:=1;p2:=1; q[1]:=s2; p[s2]:=0; repeat for j:=1 to a[q[p1],0] do if (p[a[q[p1],j]]〈0)and (c[q[p1],a[q[p1],j]]〉0) then begin inc(p2); q[p2]:=a[q[p1],j]

36、 p[q[p2]]:=q[p1]; if q[p2]=t1 then exit(true); end; inc(p1); until p1〉p2; exit(false); end; function flow:longint; var i,f:longint; begin f:=0; repeat if find then begin i:=t1; inc(f);

37、 while p[i]<〉0 do begin dec(c[p[i],i]); inc(c[i,p[i]]); i:=p[i]; end; end else break; until false; exit(f); end; procedure docut; begin maxflow:=flow;

38、 c2:=c; x:=0; for i:=1 to n do if (i<>s) and (i<>t) and (c[i*2—1,i*2]=0) then begin c:=cbak; c[i*2-1,i*2]:=0; if maxflow=flow+1 then begin inc(x); cut[x]:=i;

39、 end; end; end; procedure out; begin assign(output,’telecow.out');rewrite(output); writeln(maxflow); { for i:=1 to maxflow-1 do write(ans[i],' ’); writeln(ans[maxflow]);} close(output); halt; end; function ok(i:longint):boolean; var j:longint; begin if

40、 i=t then exit(true); bb[i]:=false; for j:=1 to d[i,0] do if b[d[i,j]] and bb[d[i,j]] and ok(d[i,j]) then exit(true); exit(false); end; procedure dfs(i,last:longint); var j:longint; begin if i=maxflow+1 then begin fillchar(bb,sizeof(bb),true);

41、 if not ok(s) then out; exit; end; for j:=last+1 to x do begin ans[i]:=cut[j]; b[cut[j]]:=false; dfs(i+1,j); b[cut[j]]:=true; end; end; begin init; docut; fillchar(b,sizeof(b),true); dfs(1,0); e

42、nd。 电车 题目大意: 有N个点,每个点有若干条从该点出发的边,走其中一条特定的边是不需要费用的,走其他边需要1的费用来切换开关状态,求从点A到点B的最小费用。 解题思路: 对于从路口i出发前往路口j的一条轨道,若无需切换开关,则w[i][j]=0,否则w[i][j]=1 使用单源最短路算法求解( dijkstra或spfa) 参考程序: #include using namespace std; const int MAX = 110; const int INF = 0x3f3f3f3f; int map[MAX][MAX]; boo

43、l vis[MAX]; int dis[MAX]; int n, a, b; void dijkstra(int s, int e) { int i, j; int min, loc; // 初始化从s开始的最短路 for (i=1; i<=n; ++i) { dis[i] = map[s][i]; } dis[s] = 0; vis[s] = true; for (i=1; i〈n; ++i) { min = INF;

44、loc = -1; // 寻找从s出发的最短路 for (j=1; j<=n; ++j) { if (!vis[j] && dis[j]

45、 true; //更新从s出发的最短路 for (j=1; j〈=n; ++j) { if (!vis[j] && dis[j]>dis[loc]+map[loc][j]) { dis[j] = dis[loc] + map[loc][j]; } } } (dis[e] == INF)? cout << "-1" << endl : cout <〈 dis[e] 〈< endl; }

46、 int main() { freopen(”tram。in","r",stdin); freopen(”tram.out","w",stdout); int k, t; memset(vis, false, sizeof(vis)); memset(map, 0x3f, sizeof(map)); memset(dis, 0x3f, sizeof(dis)); scanf(”%d%d%d", &n, &a, &b); for (int i=1; i〈=n; ++i) { scan

47、f("%d”, &k); for (int j=1; j<=k; ++j) { scanf("%d”, &t); (j == 1)? map[i][t] = 0 : map[i][t] = 1; } } dijkstra(a, b); return 0; } 排序 题目大意: 有n个元素,给出m条形如X

48、断当前图是否存在确定的顺序 若存在环,则存在矛盾 最多需进行m次拓扑排序 参考程序: #include 〈iostream〉 #include 〈cstdio〉 #include #include #include 〈cmath〉 using namespace std; #define FOR(i,a,b) for(int i=a;i<=b;i++) #define MST(a,b) memset(a,b,sizeof(a)) #define MAXN 30 #define MAXM 1000 int n,m,ue[MAXM

49、],ve[MAXM],b[MAXM]; int tot,first[MAXN],next[MAXM]; void add(int u,int v) { ue[++tot]=u;ve[tot]=v; next[tot]=first[u];first[u]=tot; } void init() { MST(first,0); char a,b; tot=0; FOR(i,1,m) { scanf(”%c〈%c\n",&a,&b); int u=a-'A'+1,v=b—'A’+

50、1; add(u,v); } } int d0[MAXN],d[MAXN]; int q[MAXN],l,r; int tryt()//—1失败0成功1唯一 { int l=1,r=0; FOR(i,1,n) d[i]=d0[i]; int qd=1; FOR(i,1,n)if (d[i]==0)q[++r]=i; while (l<=r) { if (l〈r) qd=0; int u=q[l++]; for(int p=first[u];p

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服