noip2017年普与组解题报告与参赛总结

上传人:n**** 文档编号:59051101 上传时间:2018-11-03 格式:PDF 页数:28 大小:903.90KB
返回 下载 相关 举报
noip2017年普与组解题报告与参赛总结_第1页
第1页 / 共28页
noip2017年普与组解题报告与参赛总结_第2页
第2页 / 共28页
noip2017年普与组解题报告与参赛总结_第3页
第3页 / 共28页
noip2017年普与组解题报告与参赛总结_第4页
第4页 / 共28页
noip2017年普与组解题报告与参赛总结_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《noip2017年普与组解题报告与参赛总结》由会员分享,可在线阅读,更多相关《noip2017年普与组解题报告与参赛总结(28页珍藏版)》请在金锄头文库上搜索。

1、NOIp2017 普及组解题报告 3 begin 4 assign(input, score.in); 5 reset(input); 6 assign(output, score.out); 7 rewrite(output); 8 readln(a, b, c); 9 if a = 0 then 10 write(c div 2) 11 else 12 write(c div 2 + 50); 13 close(input); 14 close(output); 15 end. 代码代码_算法二(算法二(Pascal) (推荐此算法) (推荐此算法) 1 var 2 a, b, c : l

2、ongint; 3 begin 4 assign(input, score.in); 5 reset(input); 6 assign(output, score.out); 7 rewrite(output); 8 readln(a, b, c); 9 write(trunc(a * 0.2 + b * 0.3 + c * 0.5); /也可以写:0:0 10 close(input); 11 close(output); 12 end. NOIp2017 普及组解题报告 3 a : array01001 of longint; 4 p : array08 of longint; 5 beg

3、in 6 assign(input, librarian.in); 7 reset(input); 8 assign(output, librarian.out); 9 rewrite(output); 10 p0 := 1; 11 for i := 1 to 8 do pi := pi - 1 * 10; /pi表示 10i 12 read(n, q); 13 for i := 1 to n do read(ai); 14 for i := 1 to q do 15 begin 16 read(m, x); 17 ans := maxlongint; 18 for j := 1 to n d

4、o 19 if (aj = x) and (aj mod pm = x) and (aj 0)(1)(1)+ (1),) + 2(1) 0) (因为当前点无色,则需要枚举颜色 ) 2. 0:= (1)+ (,) (1)+ (,)( = ) ( )(当前点有色,只能是这个点的颜色。枚举下和右点的颜色) NOIp2017 普及组解题报告 2 const 3 dx : array14 of longint = (-1, 0, 1, 0); 4 dy : array14 of longint = (0, -1, 0, 1); 5 var 6 n, m, i, j, x, y, z, s, ans :

5、longint; 7 a : array0101, 0101 of longint; 8 b : array0101, 0101 of boolean; 9 procedure dfs(x, y, z, p : longint); 10 var 11 k, i, j : longint; 12 begin 13 if (x = n) and (y = n) then 14 begin 15 if s = ans then exit; /唯一的剪枝 19 for k := 1 to 4 do 20 begin 21 i := x + dxk; j := y + dyk; 22 if (i n)

6、or (j n) then continue; 23 if not bi, j then continue; 24 bi, j := false; 25 if (ai, j = -1) and (p = 0) then 26 begin 27 s := s + 2; 28 dfs(i, j, z, 1); 29 s := s - 2; 30 end 31 else 32 if ai, j = 0 then 33 begin 34 if z ai, j then s := s - 1; 37 end; 38 bi, j := true; 39 end; 40 end; 41 begin NOIp

7、2017 普及组解题报告 43 reset(input); 44 assign(output, chess.out); 45 rewrite(output); 46 read(n, m); 47 for i := 1 to n do 48 for j := 1 to n do 49 begin 50 ai, j := -1; bi, j := true; 51 end; 52 while m 0 do 53 begin 54 dec(m); 55 read(x, y, z); 56 ax, y := z; 57 end; 58 b1, 1:=false; 59 ans := maxlongin

8、t; s := 0; 60 dfs(1, 1, a1, 1, 0); 61 if ans = maxlongint then write(-1) else write(ans); 62 close(input); 63 close(output); 64 end. 代码代码_算法二(算法二(Pascal) (推荐此算法) (推荐此算法) 1 uses math; 2 const 3 dx : array14 of longint = (-1, 0, 1, 0); 4 dy : array14 of longint = (0, -1, 0, 1); 5 var 6 n, m, i, j, x,

9、y, z : longint; 7 a : array0101, 0101 of longint; 8 b : array0101, 0101, 01, 01 of boolean; 9 q : array0500001, 14 of longint; 10 f : array0101, 0101, 01, 01 of longint; 11 function bfs(x, y, z, p : longint) : longint; 12 var 13 h, t, i, u, v, w, r, tmp : longint; 14 begin 15 filldword(f, sizeof(f)

10、2, maxlongint 2); 16 fillchar(b, sizeof(b), 0); 17 h := 0; t := 1; NOIp2017 普及组解题报告 qt, 2 := y; qt, 3 := z; qt, 4 := p; 19 bx, y, z, p := true; 20 fx, y, z, p := 0; 21 while h n) or (y n) then continue; 30 if ax, y = -1 then 31 begin 32 z := w; p := r + 1; 33 if p = 2 then continue; /不能连续用两次魔法 34 tm

11、p := fu, v, w, r + 2; 35 end 36 else 37 begin 38 z := ax, y; p := 0; 39 if w = z then tmp := fu, v, w, r else tmp := fu, v, w, r + 1; 40 end; 41 if tmp 0 do 63 begin 64 read(x, y, z); 65 ax, y := z; 66 dec(m); 67 end; 68 z := bfs(1, 1, a1, 1, 0); 69 if z = maxlongint 2 then write(-1) else write(z);

12、70 close(input); 71 close(output); 72 end. 代码代码_算法三(算法三(Pascal) (推荐此算法) (推荐此算法) 1 uses math; 2 const 3 dx : array14 of longint = (-1, 0, 1, 0); 4 dy : array14 of longint = (0, -1, 0, 1); 5 var 6 n, m, i, j, k : longint; 7 a : array0101, 0101 of longint; 8 f : array0101, 0101, 12 of longint; 9 functi

13、on d(x, y : longint) : longint; 10 begin 11 if x 0 then 23 begin 24 tf := fi, j, k; 25 if k 2, 0); 51 while m 0 do 52 begin 53 read(i, j, k); 54 ai, j := k + 1; 55 dec(m); 56 end; 57 filldword(f, sizeof(f) 2, maxlongint 1); 58 f1, 1, a1, 1 := 0; 59 while dp() do ; /直到不能更新任何点 60 k := min(fn, n, 1, fn, n, 2); 61 if k = maxlongint 1 then write(-1) else write(k); 62 close(input); 63 close(output); 64 end. NOIp2017 普及组解题报告 2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号