私のZJOI

Day2

2017-3-22 08:00:07

其实完全可以看那些大佬的ppt,分享见网址大佬ppt

只不过好像有人抄我博客的样子……这也是一种荣幸嘛……好不容易写篇博客然后被抄,也在一种层面上说明我写的博客写得好吧。【逃……

但还是认准我的博客正文链接哦Hash大法好

AtCoder试题选讲

SYC(Sun Yican) from Shaoxing No.1 High School

2017-3-22 08:00:07

AtCoder简介自己看。

1.寿司

有一个长为N数列A,初始全为0.

有Q次操作,每次操作两个参数X,Y

  • 在A[1],A[2]…A[X]中找出最小的数,如果有多个找小标最小的,设找到了u
  • A[u] = A[u] + 1
  • 重复这个过程Y次
Solution:

A[i] >= A[i + 1] 恒成立

用线段树维护段。时间复杂度O((N+Q)logQ)

2.BBQ Hard

AGC001

  • 有N个食物包,第i个内有1个竹签,A[i]块肉,B[i]个菜
  • 竹签两两可区分,但是肉和菜不是
  • 你要做一个烤串,你会挑选两个数i,j(i < j ),然后把i,j两个包中的食物和竹签都拿出来串成一串,食材可以任意排列
  • 问有多少种不同的方案(mod 10^9 + 7)
  • N <= 2e5, A[i] ,B[i] <= 2000
Solution:

C(A+B, A) 表示在A*B的矩形上,从左下角走到右上角的方案数。

所以对于题目,有C( Ai + Bi + Aj + Bj, Ai + Aj ) 同上,再平面上放两个点(A[i], B[i]), (-A[i], -B[i])

3.Snuke's Coloring 2

AGC036

  • 在一个平面直角坐标系上,横坐标是[0, w],纵坐标是[0, H]
  • 在平面上有N个点,第i个点的坐标是(xi, yi)
  • 开始时的时候整个平面式白的
  • 对于每个点,有如下四个操作:
    1. 将x<xi的部分全部涂黑
    2. 将x>xi的部分全部涂黑
    3. 将y<yi的部分全部涂黑
    4. 将y>yi的部分全部涂黑
  • 要求最大化最后白色部分的周长
  • N <= 3e5, w, H <= 1e9
Solution:

问题转换成找一个周长最大的矩形,里面不包含一个点。

考虑经过中显得矩形。单调栈+线段树

T(n) = O(nlog2n)

但注意到答案至少是2*max(w, H) * 2,分治只要算前两层就可以了。

复杂度T(n) = O(n logn)

4.Candy Piles

AGC002

  • 有N堆糖果,第i堆有A[i]个糖
  • Snuke 和 Ciel在玩游戏,Snuke先手
  • 两人轮流进行,每次必须挑选做两个操作之一
    1. 将当前最大的那堆糖全部吃完
    2. 将当前存在的每堆糖果各吃一个
  • 吃完最后一个的人输,问先手是否必胜。
  • N <= 1e5, A[i] <= 1e9
Solution:

把所有的A[i]排序,把这张图形形似条形统计图,然后问题转换成了从左下角有一颗棋子,走到边界算输。

然后SG函数

SG函数:

在一个DAG中,从起点开始,每人走一步,走到不能走的人输

SG[x] = 0(v无出边) / mex{ sg(w) }

(mex表示在集合中没出现的最小自然数)

如果有两张图,就是两张DAG的值异或一下

打表可以知道SG[i][j]= SG[i + 1][j + 1]

5.Zig Zag MST

CodeFestival 2016 final

  • 有N个点,标号0~N - 1,排成一个环,有M次操作。
  • 每次操作有三个参数A[i],B[i],C[i]
  • 他会在这张图上加无穷条边
  • 具体可以用一份代码实现这个过程:AddEdge(x ,y, z)表示x向y连权值为z的有向边
void Word( int a, int b, int c ) {
AddEdge(a % N, b % N, c);
Work( b, a + 1, c + 1);
}
for( int i = 0 ; i < M ; i ++ ) {
Work( A[i], B[i], C[i]);
}
  • 求连完所有边以后MST(最小生成树)的大小
  • N,M <= 1e5
Solution:

考虑连的边:

(A, B, C)

(B, A + 1, C)

(A + 1, B + 1, C + 2)

于是考虑Kruskal,相邻点之间的连边可以扫描线解决。

6.Robot and String

Mujin Programming Challenge 2017

  • 定义一种字符串的消除方式:

    • 每次挑选两个相邻的且字符一样的位置,如果有多个,挑选位置最小的那个,将这两个位置上的字符消去,并用字母表中的下一个字符替换它们
    • Especially, 如果你删去的是‘z',那么它们将消失
    • 'xxyz' -> 'yyz' -> 'zz' -> ''
  • 给出一个字符串S,有Q次询问,每次询问给出一个区间[l, r],询问子串[*l, r *],是否能被消完
  • |S| <= 5e5, Q <= 1e5
Solution:

考虑第一个字符什么时候被消掉

当第一个字符被消掉的时候一定删除了一个前缀。

维护这个东西

用f[i][j]表示考虑消除[i..n]i第一次变成j的位置

f[i][j] = f[f[i][j - 1]][j - 1]

f[i]['z' + 1]就是i第一次被消掉的位置

7.Many Easy Problems

AGC005

  • 有一个N个点的树
  • 你在书上随机了K个点,然后找出了包含这K个点的最小连通子图的大小(点数)X
  • 求X的期望呈上C(n ,k)的结果
  • 可以证明是个整数,对924844055(可以NTT)取膜
  • 对每个1 <= K <= N都输出答案
  • N <=200000
Solution:

考虑每个店被包含的方案数。然后balabala…

8.Leftmost Ball

AGC001

  • 你有N*K个球,它们有N种颜色,每种K个。颜色的编号是1~N,你可以把它们任意摆列,在排列完以后把每种颜色的球最靠做的那个涂成第0种颜色
  • 问最后会有多少种不同的方案
  • 对1e9 + 7取膜
  • N, K <= 2000
Solution:

用f[i][j]表示出现了i个0,j个颜色出现了k-1数字的方案数

f[ i ][ j ] -> f[i + 1][j]

f[i][j] * C(i + K * j, K - 1) -> f[i][j + 1]

void fuck( int your, int mother )

9.123 Pairs

Code Festival Grand Final

  • 有2N个数字,1~2N,你要将他们分成N个Pair,使得每个数字恰好在一个Pair中
  • 要求如果i,j在一个Pair中,那么|i - j| <= 3
  • 并且有恰好有A个Pair满足|i - j| = 1
  • 并且有恰好有B个Pair满足|i - j| = 2
  • 并且有恰好有C个Pair满足|i - j| = 3
  • 计算有多少种不同的方案,答案对1e9+7取膜
  • N,A,B,C <=5000, A + B + C = N
Solution

考虑C = 0的情况,B可以考虑成4个连续的配对,从而简单。

当C ≠ 0时,L1表示A相连,L2表示B相连,L3表示C相连。

需要连成一个前缀:

  • L1 * 1 : 1 - 2
  • L3 *1 + L1 * 1 : 1 - 4
  • L3 * 3 +
  • ballbala……

    于是O(n^2)枚举

10.Painting Graphs With AtCoDeer

ARC062

  • 有一个N个点,M条边的无向图,保证没有重边和自环
  • 你要对每条边染上颜色,颜色有K种
  • 文有多少种本质不同的方案(对1e9+7 )取膜
  • 本质相同的定义如下
    • 考虑两个染色方案A,B
    • 对环进行轮滑,
    • 如果A在有限步内变成B,那么A和B本质相同
  • N,M, K <= 100
Solution

每个点的双联通分量显然是独立的

对于一个环,它有三种情况

群论???SMG!! (╯‵□′)╯︵┻━┻

有弃坑转战数学的冲动

  • [x]弃坑
  • [x]不弃坑

11.Next or Nextnext

AGC008

  • 有一个长为N的数组A
  • 文有多少长为N的排列P使得 P[i] = A[i] 或P[P[i]] = A[i]
  • 答案对1e9+7取膜
  • N <= 1e5
Solution

并不知道

12.Eternal Average

AGC009

13.フイボナツチ数の総和

Square8691206Contest #3

好像要高数。。(╯‵□′)╯︵┻━┻

杂题选讲

浙江省绍兴市第一中学 洪华敦

hhdskydec@sina.com

详见PPT,我不做笔记了

大佬PPT

ZJOI2017 Day2的更多相关文章

  1. After ZJOI2017 day2

    4.28早上6点左右就起了床,怀着紧张的心情,候到了7:45进考场 看到题,先0.5h看了看题意,yy一下,至少10+20+10. 首先是觉得T3可以搞一搞,先想到SA,很快就X掉了,思索一会儿,感觉 ...

  2. ZJOI2017 day2 T2 线段树 想法题

    考完D2发现自己简直zz了...花式扔基本分 首先这道题有个显然的套路:树上一些点到一个定点的距离和=这些点深度和+点数*定点深度和-2*lca深度和 ——上一次见这个套路是LNOI2014,上次做的 ...

  3. 【从零开始学BPM,Day2】默认表单开发

    [课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...

  4. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  5. day2

    三级菜单: ))))))))))] last_levels.pop() ]]]]]]]]:] information = : ch = msvcrt.getch() ][][: : password= ...

  6. java day2一个模拟双色球的代码

    package day2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...

  7. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  8. 【BZOJ 4517】【SDOI 2016 Round1 Day2 T2】排列计数

    本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看 ...

  9. 冲刺阶段 day2

    day2 项目进展 今天本组五位同学聚在一起将项目启动,首先我们对项目进行了规划,分工,明确指出每个人负责哪些项目.由负责第一部分的组员开始编程,在已经搭建好的窗体内,对系部设置进行了编写,本校共六个 ...

随机推荐

  1. 【java设计模式】之 抽象工厂(Abstract Factory)模式

    1. 女娲的失误 上一节学习了工厂模式,女娲运用了该模式成功创建了三个人种,可是问题来了,她发现没有性别--这失误也忒大了点吧--竟然没有性别,那岂不是--无奈,只好抹掉重来了,于是所有人都被消灭掉了 ...

  2. 《JAVASCRIPT高级程序设计》DOM扩展

    虽然DOM为XML及HTML文档交互制定了一系列的API,但仍然有几个规范对标准的DOM进行了扩展.这些扩展中,有很多是浏览器专有的,但后来成了事实标准,于是其他浏览器也提供了相同的实现:浏览器开发商 ...

  3. SQL 存储过程 触发器 事务

    一.存储过程 存储过程:就像函数一样的会保存在:数据库中-->可编程性 --> 存储过程 创建存储过程:create proc JiaFa --存储关键字proc @a int,      ...

  4. 关于Node.js后端架构的一点后知后觉

    前言 上周有幸和淘宝前端团队的七念老师做了一些NodeJS方面上的交流(实际情况其实是他电话面试了我╮(╯-╰)╭),我们主要聊到了我参与维护的一个线上NodeJS服务,关于它的现状和当下的不足.他向 ...

  5. jQuery是什么

    在使用jQuery之前,我们需要了解jQuery是个什么东东. 顾名思义,j是JavaScript而query的意思是查询. jQuery就是用javascript更加方便的查询和控制页面控件  ,即 ...

  6. 5分钟快速入门 - Less

    下面给大家讲解下Less,纯手工,入门级别,相信没学过的人阅读完后就懂了,以下是我要讲的四点: 简单介绍 Less CSS 是一个使用广泛的 CSS 预处理器. 对 CSS 进行扩展,减少很多 CSS ...

  7. 浅谈C#集合【转】

    集合是.NET FCL(Framework Class Library)中很重要的一部分,也是我们开发当中最常用到的功能之一,几乎是无处不在.俗话说知其然,知其所以然,平常看到IEnumerable, ...

  8. 获取CPU和内存呢信息

    #include <stdio.h> #include <stdlib.h> #include <winsock.h> #pragma comment(lib, & ...

  9. Android开发9:网络访问&Web服务开发

    前言 啦啦啦各位小伙伴们好~ 一起进入我们今天的主题.今天我们将和大家学习网络访问和Web服务开发的相关知识,一起学习熟练使用 HttpURLConnection 访问 WebService,熟悉使用 ...

  10. TCP/IP协议(零)TCP/IP参考模型

    我们先浏览一下TCP/IP的参考模型,对网络模型有一个大致的了解,后续着重学习OSI参考模型. TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型. 1.结构 TCP/ ...