AGC010 - D: Decrementing】的更多相关文章

原题链接 题意简述 给出一个个数的序列,足够聪明的AB两人轮流进行以下操作: 令一个大于1的数减1,然后所有数除以. 如果一个人不能操作了,那么他就输了. 输入保证所有数都是正整数并且. 分析 这是一道和奇偶性有关的题目. 很容易知道拿到就输了,此时手里数的和等于. 考虑奇偶性的转换关系. 或者再展开一点: 偶-奇 是必然的很好理解,重点考虑一下为奇数的情形. 奇(-偶)-奇 要求gcd为偶数,因为偶/奇=偶.因此原数列%2必然是000-01的形式,而我可以将其变为000-11从而形成奇-偶 .…
AGC010 A - Addition 如果所有数加起来是偶数那么一定可以,否则不行 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #define eps 1e-10…
今天本人因调了上篇博客的题而脑壳不适,不想颓题,因此有了这篇博客. 但是博客毕竟得讲点什么,想想有没有什么代码短的. 哦,好像有,就Agc010_D Decrementing好了. Alice和Bob又在玩游戏了,这次他们有$N$个数. 每次操作为:1.在所有不小于$2$的数中挑一个减去$1$.2.所有数除$d$,$d$为所有数的最大公约数.不能操作者输,如果先手必胜则输入$First$,否则输出$Second$. 其中$N\leq 10^5$,每个数$\leq 10^9$. 乍一看令人十分懵逼…
[AtCoderContest010D]Decrementing 试题描述 There are \(N\) integers written on a blackboard. The \(i\)-th integer is \(A_i\), and the greatest common divisor of these integers is \(1\). Takahashi and Aoki will play a game using these integers. In this gam…
AGC010 A [过水已隐藏] B 这题推完了还是不会/kk真的毒瘤 考虑每次会减少的总和是\(n(n+1)/2\),用原来的和除以这个可以得到操作次数\(m\)(不是整数无解) 再考虑相邻两个数\(a_i,a_{i+1}\),考虑它们的差,设为\(d=a_i-a_{i+1}\). 一次操作有两种情况,一是\(\Delta a_i=-j,\Delta a_{i+1}=-j-1\),会让\(d\)增加1. 二是\(\Delta a_i=-n,\Delta a_{i+1}=-1\),会让\(d\)…
原题链接 题意简述 给出一棵个节点的树,每个点有点权.每次可以选择两个叶节点并将连接它们的路径上的节点的点权-1(包括叶节点).求能否将所有节点的点权都变为0. 分析 先考虑最简单的情况.在这种情况下,必须等于,否则GG.因为要想对v操作只能通过u,想对u操作只能通过v. 若相等我们可以令,并定义为:u需要往外连条路径.因为需要有条路径进到以u为根的子树里面,可以看做u需要向外连条路径. 再考虑一般情况.在这种情况下,必须小于等于,否则GG.因为即使把都减完了也不能为0,并且已经没有办法再减少了…
原题链接 题意简述 给出一个由个数构成的环,每次可以选择一个位置并从这个数起顺时针依次对每个数-1,-2,-3,-,-n.问能否将所有数全变为0. 分析 考虑一次操作对环带来了什么影响. (在后加一个来表示数环) -> -> 差分后: -> -> 可以看到,一次操作相当于对差分数列(或者说是差分环)的一个位置加上n-1,剩下的位置减去1.那么只要检查原环的差分数列能否全变为0,并且此时和也为0就行了. 对每一个位置的计算复杂度为,总时间复杂度为. 实现 每次操作会使和减少 ,那么总…
原题链接 题意简述 给出一个个数的数列,每次选出两个奇偶性相同的数合成一个数,问最终能否只剩下一个数. 分析 非常简单的一道题. 两个偶数可以合成一个偶数,两个奇数也能合成一个偶数.所以合并偶数时偶数的总个数减少一个,合并奇数时奇数的总个数减少两个.那么当数列中有奇数个奇数时,必然有一个无法被合并进去:反之则一定可以合并成一个数. 时间复杂度为. 实现 一边读入一边统计奇数的个数,然后判断总个数是否为奇数. 代码 //Addition #include <cstdio> int main()…
题目链接 \(Description\) 给定\(n\)个数\(A_i\),且这\(n\)个数的\(GCD\)为\(1\).两个人轮流进行如下操作: 选择一个\(>1\)的数使它\(-1\). 第一步进行完后,所有数会变成它除以\(g\),其中\(g\)是\(n\)个数的\(GCD\). 当轮到一个人操作,但所有数为\(1\)时,该人输.求先手是否必胜. \(n\leq10^5,\ A_i\leq10^9\). \(Solution\) 首先能发现一些性质: 当有一个数变成\(1\)时,答案只和…
Solution 日常博弈论做不出来. 首先,数值全部为1的局面先手必败. 在接下来的过程中,我们只关注那些大于1的数值. 按照官方题解的思路,首先想一个简化版的问题:没有除的操作,其余相同.那么局面结果显然和所有值的和的奇偶性有关. 回到原问题.我们发现,当局面中有2个或更多奇数,其余为偶数时,我们对任意一个元素进行一次完整操作,仅仅会将一个元素从奇变偶,或从偶变奇.原因?只要有奇数存在,所有数的GCD必定是奇数.所以当全局除以GCD时,奇数还是奇数,偶数还是偶数,因为它们的2没有被除去.不论…
题目描述 有n个整数,其中第i个数为Ai.这些数字的gcd为1.两人轮流操作,每次操作把一个大于1的数减1,并把所有数除以所有数的最大公约数,最后无法操作者输,求是否先手必胜. 如果当前的sum为偶数,那么减一之后sum变为奇数,gcd必为奇数,而任意数除一个奇数后奇偶性不变,故这步走完后sum必然为奇数. 如果当前的sum为奇数,减一之后sum变为偶数,如果当前全为偶数,那么除完gcd后奇偶不一定,否则sum依然为偶数. 当局面全为1的时候先手必败,此时的奇偶为$n%2$,考虑先手怎样控制局面…
题意 有一棵 \(n\) 个点的树,第 \(i\) 个节点有 \(a_i\) 个石子. 每次都可以选择一对不同的叶子节点,这对叶子节点路径上的所有点都必须要有石子.然后去掉这两个叶子节点路径上的每个节点中的一颗石子(选择的两个叶子节点也是路径中的点).叶子节点是度数为 \(1\) 的点. 判断是否有可能去掉所有的石头. \(n\le 10^5\) \(a_i\le 10^9\) 题解 https://blog.csdn.net/zjznku/article/details/54948774 #i…
正题 题目链接:https://www.luogu.com.cn/problem/AT2305 题目大意 \(n\)个数字两个人进行博弈,每个人的操作为 选择一个大于1的数字减一 之后所有数字除以所有数字的\(gcd\) 无法操作者败,保证初始所有数字互质 求是否先手必胜 \(1\leq n\leq 10^5\) 解题思路 好妙的题目,先不考虑除\(gcd\)的话,那么就是考虑\(\sum_{i=1}^n(a_i-1)\)的奇偶性. 假设目前为奇状态,那么先手的目的显然是要保持这个奇数状态,注意…
ExtJS中除了提供丰富的组件外,我们还可以扩展他的组件. 在这里,我们将在Date日期组件上添加一个[清除]按钮,用于此组件已选中值的清除. 目录 1. Date组件介绍 2. 主要代码说明 3. 代码与在线演示 1. Date组件介绍 这里的Date组件全称为 Ext.form.field.Date,为form表单一个组件. 查看Ext.form.field.Date的源代码的得知需要 Ext.picker.Date. Ext.picker.Date是一个日期选择器,包含了日期选中.渲染布局…
Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. You may assume the array's length is at most 10…
By executing code one line or one function at a time, you can observe changes in the data and in the page to understand exactly what is happening. You can also modify data values used by the script, and you can even modify the script itself. Why is t…
原题链接在这里:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/ 题目: Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or d…
463. Island Perimeterhttps://leetcode.com/problems/island-perimeter/就是逐一遍历所有的cell,用分离的cell总的的边数减去重叠的边的数目即可.在查找重叠的边的数目的时候有一点小技巧,就是沿着其中两个方向就好,这种题目都有类似的规律,就是可以沿着上三角或者下三角形的方向来做.一刷一次ac,但是还没开始注意codestyle的问题,需要再刷一遍. class Solution { public: int islandPerime…
写在粘贴复制前:英文的感觉也可以,也能看的懂,多看看英文资料没坏处的 Problem. You have questions about the List collection in the .NET Framework, which is located in the System.Collections.Generic namespace. You want to see examples of using List and also explore some of the many use…
Core Audio render thread and thread signalling up vote2down votefavorite   Does iOS have any kind of very low level condition lock that does not include locking? I am looking for a way to signal an awaiting thread from within the Core Audio render th…
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存.任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同.静态内存是连续的,因为是…
深入分析PHP优化及注意事项 1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存. 任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实…
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.当然了,这个测试方法需要在十万级以上次执行,效果才明显.其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存.任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同.静态内存是连续的,因为是…
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存. 任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同.静态内存是连续的,…
1.前言 开发人员不喜欢打字.如果你希望提高开发人员的生产力,减少键入的数量,这也同时减少打字稿的数量以及因此产生的编译器错误,这些都极大分散了开发人员的注意力.代码重用是开发人员收集代码的另一个原因.即使单个应用程序也会大量地由小而公共的代码段组成,在几乎每个程序中都会有相同的代码元素:循环.类.异常处理等等.开发人员传统上是对代码进行剪切和粘贴以避免重复键入.但是这具有相当的局限性,包括有限的持久性,应该有更可行的解决方案. 这个解决方案就是在Visual Studio 2005中引入的代码…
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 1.Memcached安装配置 #安装倚赖包 yum install libevent-devel #安装软件 yum -y…
1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化,就对它做静态声明.速率可提升至4倍. 2. echo is faster than print. echo 比 print 快. 3. Use echo's multiple parameters instead of string concatenation. 使用echo的多重参数(译注:指用…
50分钟学会Laravel 50个小技巧 时间 2015-12-09 17:13:45  Yuansir-web菜鸟 原文  http://www.yuansir-web.com/2015/12/09/50分钟学会laravel-50个小技巧/ 主题 Laravel 转载请注明:转载自 Yuansir-web菜鸟 | LAMP学习笔记 本文链接地址: 50分钟学会Laravel 50个小技巧 原文链接:< 50 Laravel Tricks in 50 Minutes by willroth >…
点击打开链接 一:wakeup_source简介: linux 3.4内核PM使用了wakeup_source来保持唤醒状态,也就是keep awake.之前android一直是基于Linux加入了wake_lock机制来阻止系统休眠,后来Linux 3.4内核加入了wakeup_source来管理,安卓4.4跟着升级内核也就摒弃了自己的臃肿的wake_lock机制,在对上层接口并不改变,在内核wake_lock实现直接基于wakeup_source来实现的.当然也会带来debug上的一些问题,…
/* *  linux/mm/memory.c * *  Copyright (C) 1991, 1992  Linus Torvalds */ /* * demand-loading started 01.12.91 - seems it is high on the list of * things wanted, and it should be easy to implement. - Linus */ /* * Ok, demand-loading was easy, shared p…