A@[G!C]%008


A Simple Calculator

细节题。

B Contiguous Repainting

最后只要有连续\(K\)个鸽子同色就可以构造方案,枚举+前缀和

C Tetromino Tiling

分析一波发现T,Z,S不可能出现,O可以直接加到最后面,剩下的拼法可以简化成JJ,II,LL,JIL,分类讨论一下。

D K-th K

直接贪心加

E Next or Nextnext

毒瘤神仙题

排列\(p\)会连成一些环,\(a\)是一个鸡环内向森林,考虑一个环怎么变化

变化的方式是每个点\(i\)可以将边\((i,p_i)\)变成\((i,p_{p_i})\),

  • 如果\(a\)是一个环,那么就是每个点的出边都变了或者都没变

    • 如果\(p\)是个奇环,那么\(a\)有两种方式(直接看题解的图)
    • 如果\(p\)是个偶环,那么\(a\)也有两种方式,要么不变要么拆成两个环长相等的环(直接看题解的图)

那么这个可以dp求出环的情况数

  • 如果\(a\)是个鸡环内向树,首先环上一个点最多接一条链,然后考虑相邻的两条链,如果满足一定大小关系就给答案×2(直接看题解)

https://agc008.contest.atcoder.jp/editorial

F Black Radius

这个题太仙了= =(yyb:然而我也不太会

部分分做法。。。现在所有点都可以是黑色

设\(f(x,d)\)为距离\(x\)不超过\(d\)的点集。这里钦定全集不计入答案,那么设\(max_i\)表示每个点的最远点距离,\(d_i<max_i\)

但是肯定会有记重,比如两个点\(x,y\),有\(f(x,d_x)=f(y,d_y)\)。容易证明如果有相邻的\(x,y\),\(f(x,d_x)=f(y,d_y)\)那么\(|d_x-d_y|=1\)(考虑一定存在一条边连接着一个被染黑和未染黑的点,走过去的步数差)

而且可能选了一个\(f(x,d_x)\)后,有一个连通块,在这个连通块里选一个\(y\)都能找到\(f(y,d_y)=f(x,d_x)\)(我也不知道为啥就是连通块)

而且连通块中一定可以找到唯一一个\(d\)最小的点,如果有两个,考虑一定存在一条边连接着一个被染黑和未染黑的点,讨论未染黑的点的位置,发现都不可能= =

于是就可以对每个\(f(x,d_x)\)相同的连通块,只在\(d\)最小的那个点记录,就可以不重不漏计数了。

具体的,记录\(f(x,d)\)时,如果有一个相邻的\(y\)满足\(f(x,d)=f(y,d-1)\),就不记录。

考虑对于\(x\),\(d\)要满足什么东西,首先\(d<max_x\),然后如果\(x\)设为树根,不存在儿子\(y\)满足不记录的条件。

首先\(y\)子树内的,\(f(x,d)\)该记到的\(f(y,d-1)\)都能记到,这个是一样的。其他子树中,因为从\(y\)出发过去会少记两层,所以其他子树中只要有一个满足\(f(y,d-1)\)没记完整个子树,这个\(y\)就不行。如果对\(x\)选尽量能淘汰\(x\)的\(y\)肯定选最长的链,设\(sec_i\)表示每个点设为根,所有儿子中\(max_{son}\)的次大值+1。要满足的是\(d<sec_x+2\)(再大就占满所有其他子树了)

然后一次换根dp就做完了部分分= =

考虑\(d\)的下界,如果一个点不能被染黑,它能计算的\(d\)下界是啥。

还是\(x\)作为根,只要\(d\)染黑了一整个儿子的子树,而且这个儿子中有能染黑的点就可以。

然而我也不太懂(抄题解)


https://agc008.contest.atcoder.jp/submissions/me?task_screen_name=&language_screen_name=&status=AC

A@[G!C]%008的更多相关文章

  1. Storyboards Tutorial 03

    这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ...

  2. 文件图标SVG

    ​<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink ...

  3. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...

  4. CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    ---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update....   yum install 或者 添加y ...

  5. Linux deepin 下sublimes配置g++ openGL

    参考 :http://blog.csdn.net/u010129448/article/details/47754623 ubuntu 下gnome只要将代码中deepin-terminal改为gno ...

  6. [翻译svg教程]svg 中的g元素

    svg 中的<g>元素用来组织svg元素.如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个 ...

  7. 软件工程:黄金G点小游戏1.0

    我们要做的是黄金G点小游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值. ...

  8. 2016huasacm暑假集训训练五 G - 湫湫系列故事——减肥记I

    题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/G 这是一个01背包的模板题 AC代码: #include<stdio.h&g ...

  9. 毫秒级的时间处理上G的图片(生成缩略图)

    测试环境: 测试图片(30M): 测试计时方法: Stopwatch sw1 = new Stopwatch(); sw1.Start(); //TODO...... sw1.Stop(); stri ...

随机推荐

  1. 基于 DNS 动态发现方式部署 Etcd 集群

    使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...

  2. c#语法复习总结(1)-浅谈c#.net

    出来工作两年,发现自己进步太小了,工作能力是不能混的,想先从基础知识好好复习一下,再深入的学习一些高级框架和先进的理念.找回了博客园的密码账号,好好学习和总结.先从数据类型总结一下,无非就是值类型,引 ...

  3. (原创)理解主机设备(PLC,PC机)之间的以太网通信

    主机设备:PC机,PLC 网络设备:家用路由器 局域网包括了有线局域网和无线局域网(WIFI).怎么去使用2者? 网络设备的职责最终目的为了帮助2台主机的数据传输.路由器,交换机范围不同,目的相同.在 ...

  4. [Cocos Creator]安卓上微信小游戏加载到100%就进不去了

    最近用Cocos Creator 开发微信小游戏,构建发布到微信上,用安卓手机预览打开后加载到100%就不动了,开始以为微信开发工具版本的问题,后来用苹果的手机测试了一下,发现也有同样的问题. 仔细分 ...

  5. xcode模拟器使用常用的命令。

    1.查看模拟器的udid用的 xcrun instruments -s xcrun simctl list 2.启动这个模拟器: xcrun instruments -w 'B39EC2FF-8A8B ...

  6. 小tips:在JS语句执行机制涉及的一种基础类型Completion

    看一个如下的例子.在函数 foo 中,使用了一组 try 语句.在 try 中有 return 语句,finally 中的内容还会执行吗? function foo(){ try{ return 0; ...

  7. 前端用js获取本地文件的内容

    这里要写成input的形式 调用upload函数 传递的参数就表示所选的文件<input type="file" onchange="upload(this)&qu ...

  8. Java 之 System 类

    java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作. 一.标准输入.标准输出和错误输出流对象 PrintStream err:“标准”错误输出流. Inp ...

  9. Api测试-为postman自动添加cookie

    使用postman来调试接口,会被buc-sso-csrf等拦截,需要自己挨个添加cookie,但是cookie又有失效时间,所以本篇介绍如何使用插件来自动获取cookie进行接口api测试 一.安装 ...

  10. 访问Stack Overflow速度超慢的原因

    很多网站,尤其是国外网站,为了加快网站的速度,都是用了 Google 的 CDN. 但是在天朝,由于某些原因,导致全球最快的 CDN 变成了全球最慢的. 解决方法步骤如下: 下载ReplaceGoog ...