A|G\C003
AGC003
A Wanna go back home
= =
https://agc003.contest.atcoder.jp/submissions/7910739
B Simplified mahjong
直接腾讯。
https://agc003.contest.atcoder.jp/submissions/7910863
C BBuBBBlesort!
考虑将\(a\)分成\(L=a[::2]\)和\(R=a[1::2]\),这两个序列可以不消耗代价随意打乱,或者可以交换\(L_i\)和\(R_i\)
所以如果从两个序列中分别拿出一个元素交换代价是\(1\)
计算有多少起始序列!=目标序列的数,答案就是\(\lfloor cnt/2\rfloor\)
https://agc003.contest.atcoder.jp/submissions/7910962
D Anticube
对每个数\(x=\Pi p_i^{e_i}\),将其变成最简形式\(\Pi p_i^{E_i=e_i\mod 3}\)不影响答案
然后一个数\(x=\Pi p_i^{E_i}\)对应的满足\(xy\)是完全立方数的\(y\)只有一个,那就是\(\Pi p_i^{-E_i\mod 3}\)
对每个数计算一下出现了几次,如果它和另一个数互斥,则删掉数量较小的那一堆
(特判一下,如果有一堆化简后是\(1\)就代表都是完全平方数,会和自己互斥,这一对只能随便选\(1\)个)
E Sequential operations on Sequence
毒瘤
对于缩小操作,那么前面一些操作会没用,先用一个单调栈去除掉无用操作,这样\(q\)就单调递增了
从后往前考虑,每次拿出最后一个操作,计算它对答案的贡献
\(q_i\)会从\(q_{i-1}\)循环复制过来,就会被分成很多个\(q_{i-1}\)和一段前缀
维护一个\(mul_i\),这差不多是一个标记,表示最后的序列会加上\(mul_i\cdot A[1,q_i]\)
(最后序列加上\(k\cdot A[1,r]\)的意思是会再出现\(k\)个和\(A[1,r]\)一样的数
具体要实现这样一个函数:\(work(p,M)\),表示最后序列加上\(M\cdot A[1,p]\)
如果\(p\leq q_1\)(\(q_1\)一定不大于\(n\))那么\(ans_1\)到\(ans_p\)要加上\(M\);
否则和前面一样的,找到第一个可行的操作,然后递归下去
具体看代码= =
https://agc003.contest.atcoder.jp/submissions/7917606
F Fraction of Fractal
神题Orz
首先特判掉一些情况:
- 上下连通(上下拼起来仍连通)且左右连通,那么最后一定依然连通,输出1
- 上下,左右都不连通,那么最后每次分形都不会有连通块接在一起,答案是\(cnt_1^{K-1}\)
现在只有一种情况:左右连通(上下的话翻过来
1e18显然要矩乘dp,设\(f_{i,0}\)表示\(i\)层分形图的连通块数,\(f_{i,1}\)表示((在当前图形最左有东西)和(如果左右拼这个图形,该连通块会和更左边一个连通块拼接(这个连通块可能是自己也可能是原来最右边的连通块)))的\(x\)连通块数
现在是转移,
\(f_{i,1}=f_{i-1,1}\times c\),\(c\)为在初始图形最左和最右都有东西的\(x\)坐标数
\(f_{i,0}=f_{i-1,0}\times cnt_1-f_{i-1,1}\times a\),\(a\)为初始图形左右相邻两个坐标都是1的方案数
就可以矩乘了
https://agc003.contest.atcoder.jp/submissions/7919234
A|G\C003的更多相关文章
- Storyboards Tutorial 03
这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ...
- 文件图标SVG
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink ...
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- Linux deepin 下sublimes配置g++ openGL
参考 :http://blog.csdn.net/u010129448/article/details/47754623 ubuntu 下gnome只要将代码中deepin-terminal改为gno ...
- [翻译svg教程]svg 中的g元素
svg 中的<g>元素用来组织svg元素.如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个 ...
- 软件工程:黄金G点小游戏1.0
我们要做的是黄金G点小游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值. ...
- 2016huasacm暑假集训训练五 G - 湫湫系列故事——减肥记I
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/G 这是一个01背包的模板题 AC代码: #include<stdio.h&g ...
- 毫秒级的时间处理上G的图片(生成缩略图)
测试环境: 测试图片(30M): 测试计时方法: Stopwatch sw1 = new Stopwatch(); sw1.Start(); //TODO...... sw1.Stop(); stri ...
随机推荐
- APUE之第5章——标准I/O库
一.知识回顾:文件I/O 文件 I/O 是不带缓冲的 I/O(unbuffered I/O),指每个 read 和 write 都调用内核中的一个系统调用. 对于内核而言,所有打开的文件都通过文件描述 ...
- JAVA8的java.util.function包 @FunctionalInterface
1 函数式接口java.util.function https://www.cnblogs.com/CobwebSong/p/9593313.html 2 JAVA8的java.util.functi ...
- easydict的使用方法
easydict的作用:可以使得以属性的方式去访问字典的值 from easydict import EasyDict as edict a=['8',2,3]a=edict()a.f=99print ...
- element-ui 上传图片或视频时,先回显在上传
<el-upload class="upload-demo" ref="vidos" :action="URL+'/api/post/file' ...
- JavaScript 之 事件(详解)
一.注册事件的三种方式 1.直接事件方式 语法格式: 变量名.on事件名 = function() {} 注意:这种方式无法给同一对象的同一事件注册多个事件处理函数 2.addEventListene ...
- SpringBoot学习<二>——SpringBoot的默认配置文件application和多环境配置
一.SpringBoot的默认文件appliction 上一篇文章已经说明,springboot启动会内嵌tomcat,端口也是默认的8080,如果我们想要改变端口如果做呢? 在springboot项 ...
- linux如何执行定时任务
前言:最近在做一个前端监控系统,用到分表分库的功能,由于代码上无法做到实时新建表,所以只能够曲线救国,使用linux系统的定时任务来完成. ============================== ...
- 关于mybaits的注解@Param
一.含义 @param作为dao层的注解,为了解决多个参数时,参数类型不一致的问题. <select id="findEmpById" resultType="co ...
- word 转pdf 再转图片--用在轻社群发文章
#! /usr/bin/env python # -*- coding: utf-8 -*- import fitz import glob import os from win32com.clien ...
- 团队——Beta版本发布
目录 最棒团队成员信息 一.7次冲刺博客链接 二.解决的Alpha版本问题 / Beta计划任务(与Alpha版本不同点) 二.项目本次α版本的发布地址.下载安装说明 四.PM最终报告(详细报告在各冲 ...