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 ...
随机推荐
- 开发dubbo应用程序(二)dubbo注册中心相关概述
1.注册中心概述 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下: 动态加入.一个服 ...
- phoenix kerberos 连接配置
1. 官网资料 Use JDBC to get a connection to an HBase cluster like this: Connection conn = DriverManager. ...
- 自定义HTTP消息拦截
/// <summary> /// HTTP消息拦截器 /// </summary> public class RequestHandler : DelegatingHandl ...
- 【SQL】各取所需 | SQL JOIN连接查询各种用法总结
前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...
- 用axios.all处理并发请求
如果我们需用在两个接口同时完成后,然后在执行一些逻辑,我们可以使用axios.all处理并发请求,如下所示: function getUserAccount() { return axios.get( ...
- jQuery中的DOM操作【续】
一.复制节点$(选择器字符串).clone(false) [返回克隆的节点对象]参数:false,浅复制,复制元素但不复制元素中所绑定的事件[默认为false]true,深复制,复制元素且复制元 ...
- JavaScript 函数(二)
一.匿名函数 1.匿名函数 没有名字的函数即称为匿名函数. 2.使用方法 a.将匿名函数赋值给一个变量,这样就可以通过变量进行调用 b.匿名函数自调用 3.关于自执行函数(匿名函数自调用)的作用:防止 ...
- Python 的稀疏矩阵
什么是稀疏矩阵 简单的说,如果一个矩阵中大部分元素为0,就被称为稀疏矩阵. 对于稀疏矩阵而言,实际存储的数据项很少.如果在计算机中采用传统的二维数组(Python中用二维列表)来存储稀疏矩阵,就会浪费 ...
- Linux 系统管理 : last 命令详解
原文 last命令用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来 语法 last(选项)(参数) 选项 ...
- linux卸载gitlab
完全卸载gitlab 1.停止gitlab # gitlab-ctl stop 2.卸载gitlab(看是gitlab-ce版本还是gitlab-ee版本) # rpm -e gitl ...