[agc010D]Decrementing-[。。。思考题]】的更多相关文章

好久没打模拟赛了...今天一样是两道国集,一道bzoj题 成绩:13+0+95=108 A题开始看错题了...导致样例都没看懂,结果xfz提醒我后我理解了一个我自认为正确的题意(事实证明我和xfz都错了qwq),然后瞎打了一个线段树,结果只有13分...C题一看就是一个大平衡树,开始手打了100+行发现自己肯定调不出来,于是……Rope真香 A:[arc067f]yakiniku restaurants B:[agc010d]decrementing(咕) C:[BZOJ3678]Wangxz和…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…
Solution 日常博弈论做不出来. 首先,数值全部为1的局面先手必败. 在接下来的过程中,我们只关注那些大于1的数值. 按照官方题解的思路,首先想一个简化版的问题:没有除的操作,其余相同.那么局面结果显然和所有值的和的奇偶性有关. 回到原问题.我们发现,当局面中有2个或更多奇数,其余为偶数时,我们对任意一个元素进行一次完整操作,仅仅会将一个元素从奇变偶,或从偶变奇.原因?只要有奇数存在,所有数的GCD必定是奇数.所以当全局除以GCD时,奇数还是奇数,偶数还是偶数,因为它们的2没有被除去.不论…
Description 传送门 Solution 真是够神秘的啊... Alice和Bob两个真的城会玩. 不过本题一个暗示挺明显的.就是黑板上所有数不论何时gcd为1. 考场上我以为会很复杂,结果..是我想多了qaq,人家就是用来判断奇偶性的. 由于gcd为1,黑板上必定有一个数为奇数. 假如n个数中偶数的个数为奇数,则先手必胜. 先手可以将一个偶数变成奇数,然后后手做什么,就做对应的策略.(后手奇->偶,先手就偶->奇:后手偶->奇,先手还偶->奇). 因为我们保证在后手操作的…
思考题的说明 一.本学期高代I的思考题面向16级的同学,将不定期地进行更新; 二.欢迎16级的同学通过微信或书面方式提供解答图片或纸质文件给我,优秀的解答可以分享给大家: 三.请大家先独立解答思考题,实在做不出来的情况下,可以点击思考题的解答进行参考. *********************************************************** 1.试求下列 $n+1$ 阶行列式的值: $$|A|=\begin{vmatrix} x-n & n & & &…
1.设 $f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 是整系数首一多项式, 满足: $|a_0|$ 是素数且 $$|a_0|>1+\sum_{i=1}^{n-1}|a_i|,$$ 证明: $f(x)$ 是有理数域上的不可约多项式. 注  上述不可约多项式的判别法称为 Osada 定理. 2.(1) 设 $\varphi$ 是 $n$ 维线性空间 $V$ 上的线性变换, $V$ 有一个直和分解: $$V=V_1\oplus V_2\oplus\cdots\op…
第一题: 大楼里面的电梯一般分区域,或考虑思考题第四题的情况,运行楼层不一样的电梯属于不同的区域.然后在接口IRequest和IPassenger还有IElevator里面都加上int area这个属性,用不同的整数表示不同的区域,其中IPassenger需要的是一个int area的数组,来表示这位乘客要到达目标楼层,则需要先后是用的电梯分别所属的区域.并且依照此改变输入行驶.改变了这些interface之后,就更加贴近现实实际,也能用比现在更加方便的办法处理思考题第四题. 第二题:/ 第三题…
思考题: 用Use Case获取需求的方法是否有什么缺陷,还有什么地方需要改进?(提示:是否对所有的应用领域都适用?使用的方便性?.......) 简答: 一.用例解释: 在软件工程中,用例是一种在开发新系统或者软件改造时捕获潜在需求的技术.每个用例提供了一个或多个场景,该场景揭示了系统是如何同最终用户或其它系统交互的,从而获得一个明确的业务目标.用例要避免技术术语,取而代之的是最终用户或者领域专家的语言.用例一般是由软件开发者和最终用户共同创作的. 二.创建用例的原则: 用例是短文 用例可以是…
原题链接 题意简述 给出一个个数的序列,足够聪明的AB两人轮流进行以下操作: 令一个大于1的数减1,然后所有数除以. 如果一个人不能操作了,那么他就输了. 输入保证所有数都是正整数并且. 分析 这是一道和奇偶性有关的题目. 很容易知道拿到就输了,此时手里数的和等于. 考虑奇偶性的转换关系. 或者再展开一点: 偶-奇 是必然的很好理解,重点考虑一下为奇数的情形. 奇(-偶)-奇 要求gcd为偶数,因为偶/奇=偶.因此原数列%2必然是000-01的形式,而我可以将其变为000-11从而形成奇-偶 .…
JS闭包的理解 一.变量的作用域 二.如何从外部读取局部变量 三.什么是闭包 四.深入理解闭包 五.闭包的用途 六.使用闭包注意情况 七.JavaScript的垃圾回收机制 八.一些思考题 一.变量作用域 1.要理解闭包,我们先来看一下JavaScript的特殊的变量作用域. 变量的作用域无非是两种,全局变量和局部变量. JavaScript语言的独特之处是:函数内部可以读取所有的全局变量. var n=999; function f1(){ alert(n); } f1(); 函数外部无法读取…
16 级高代 II 思考题十  设 $V$ 是数域 $\mathbb{K}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, 证明: $\varphi$ 的极小多项式 $m(\lambda)$ 在 $\mathbb{K}$ 上无重因式的充要条件是对 $V$ 的任一 $\varphi$-不变子空间 $U$, 均存在 $\varphi$-不变子空间 $W$, 使得 $V=U\oplus W$. 本题是复旦高代教材复习题七的第 24 题或高代白皮书的例 7.15 从复数域…
16 级高代 II 思考题九  设 $V$ 是数域 $\mathbb{K}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, $f(\lambda),m(\lambda)$ 分别是 $\varphi$ 的特征多项式和极小多项式. 设 $f(\lambda)=m(\lambda)=P_1(\lambda)^{r_1}P_2(\lambda)^{r_2}\cdots P_k(\lambda)^{r_k}$, 其中 $P_1(\lambda),P_2(\lambda),\c…
今天本人因调了上篇博客的题而脑壳不适,不想颓题,因此有了这篇博客. 但是博客毕竟得讲点什么,想想有没有什么代码短的. 哦,好像有,就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…
(首先,关于Honor Code,我咨询过了Help Center,分享课后练习的思考题的想法是可以的(注意不是代码),但要标明引用,引用格式来源于https://guides.lib.monash.edu/citing-referencing/apa-university-course-materials.) 北京大学(Producer). (2019) . 计算导论与C语言基础[Coursera] . Retrieved from https://www.coursera.org/learn…
package zero.desk.stringconstantpool; import org.junit.Test; /** * @author Zero * @since 2019-09-17. * Description: * 当调用intern方法时, * 如果池已经包含此字符串(equals确定),则返回池中字符串. * 否则,将此String对象添加到池中并且返回该String对象的引用. */public class StringConstantPool_Intern { @Te…
1.证明: 第三类分块初等变换是若干个第三类初等变换的复合. 特别地, 第三类分块初等变换不改变行列式的值. 2.设 $n\,(n\geq 2)$ 阶方阵 $A=(a_{ij}(x))$, 其中每个元素 $a_{ij}(x)$ 都是关于未定元 $x$ 的多项式. 若 $k$ 是正整数, 满足 $x^k$ 整除 $A$ 的所有代数余子式 $A_{ij}$, 证明: $x^{k+1}$ 整除 $A$ 的行列式 $|A|$. 提示  考虑 $A$ 的伴随矩阵 $A^*$ 的行列式. 另外, 本题还可以…
1.iOS如何应对APP版本升级,数据结构随之变化? 一般程序app升级时,数据库有可能发生改变,如增加表字段,增加表等. 此时有两种操作: 1 就是毫无留情的把本地旧数据库直接删掉,重新建立新的数据库: 2 就是数据库迁移,更新数据库. 第一种情况是简单粗暴型,但不会保留任何历史数据,一般不推荐使用. 2.单例会有什么弊端? 优点:a.实例控制:单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例. b.灵活性:因为类控制了实例化过程,所以类可以灵活更改实例化过程…
http://codeforces.com/contest/752/problem/C 这题的意思其实就是叫你固定x个点,使得按顺序走这x个点后,产生的轨迹是给定的序列. 对于有若干条最短路径走到第i个点,这些情况可以忽略,就是你可以默认走的是任意一条最短路径. 对于一个序列,可以固定两个方向,只要一直都是这两个方向的,就不用设置点了. 比如一直都是RURURURURU,这些情况是不用设置点的,当另一个变量来的时候,比如需要D了,就需要设置一个点了. 有一些需要注意的地方是, 比如 RLL,这样…
这题利用二叉堆维持堆性质的办法来维持Young氏矩阵的性质,题目提示中写得很清楚,不过确实容易转不过弯来. a,b两问很简单.直接看c小问: 按照Young氏矩阵的性质,最小值肯定在左上角取得,问题在于取出最小值后如何保持矩阵的性质.可以参照max_heapify中的做法,先取出最小值,然后将矩阵左上角置为最大值,这样左上角处的元素必然导致Young氏矩阵的性质违背,于是考虑该元素右边的元素和该元素下边的元素,问题是该与右边元素交换还是与下边元素交换呢?可以发现,如果与T(右)和T(下)中较小的…
d叉堆的实现相对于二叉堆变化不大,首先看它如何用数组表示. 考虑一个索引从1开始的数组,一个结点i最多可以有d个子结点,编号从id - (d - 2) 到 id + 1. 从而可以知道一个结点i的父结点计算方法为: (i + d - 2) / d. 第二个问题是 一个含有n个元素的d叉堆的高度,就是一个简单的等比数列的问题,可以知道的是一颗高度为h的满d叉树所含的结点数目为(d^(h +1) - 1) / (d - 1) 从而一颗含有 n个结点的d叉树满足的条件为: ,从而得到高度h为: 接下来…
http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=4915 真是老了.脑子不会动了,可是事实上就算如今搜了题解A了,还是没总结出思维方式 三点: 1.segma(a[i]-b[i])必须是偶数..由于事实上每次操作都是相当于从segma(a[i]-b[i])里面减去2*delta 2.a[i]>=b[i] 题目说的非常清楚,仅仅能减去.所以这点必须满足 前两点都想到了.可是自己能举出反例,后来队友A掉了 3.max(a[i]-…
题目要求: 输入参数:参数A,含有任意个数的?的数值字符串,如:12?4,?代表一位任意数                     参数B,不含?的数值字符串,长度与参数A一致 输出结果:参数A比参数B大的可能数值个数 输入样例 36?1?8 236428 8?3 910 ? 5 输出样例 100 0 4 #define num_max_length 20 int main(void) { char num1[num_max_length]; char num2[num_max_length];…
public class SquareInt { public static void main(String[] args) { int result; ; x <= ; x++) { result = square(x); // Math库中也提供了求平方数的方法 // result=(int)Math.pow(x,2); System.out.println("The square of " + x + " is " + result + "\…
1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass(…
http://acm.hdu.edu.cn/showproblem.php?pid=4550 想了挺久,然后各种分类 最终AC,假设是现场,对自己没信心的话,预计还是要WA,,,,,,然后搜题解,发现人家都觉得是简单题,看来我还是太弱了,牡丹江没有做出来K看来还是自己贪心和思维有问题 d是一个Deque 最朴素的算法是,假设当前的数<=d.front(),那么插入队列的前面,否则插入队列后面,可是有零所以须要单独处理,还是自己多举例找规律 我的策略: 1.记录0的个数zero,最小非零的数的个数…
http://poj.org/problem?id=1083 Description The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure.  The floor has 200 rooms each on the north side and south side along the corridor. Re…
Description 题解 题目说这是一个具有神奇特性的数列!这句话是非常有用的因为我们发现,如果套着这个数列的定义再从原数列引出一个新数列,它居然还是一样的...... 于是我们就想到了能不能用多点数列套着来加速转移呢? 但是发现好像太多数列套起来是可以烦死人的...... 我们就采用嵌套两次吧(第三次以后规律就不明显了),记原数列为A,第一层嵌套为B,第二层嵌套为C. 我们其实可以发现一些规律,对于Ci,它对应了B中i的个数:对于Bi,它对应了A中i的个数. 稍加处理即可,我们一边计算一边…
代码: int main(){ int a[10] = { 1,2,3,4,5,6,7,8,9,10 }; int *p = &a[3]; cout << "*p++ = " << *p++ << endl; //因为++的优先级与*相等,但由于*和++运算符都是右结合性(从右向左),所以该表达式相当于*(p++),先返回p给*读取a[3]的值,p再自增,指向a[4] cout << "*(++p) = " &…
题目链接 \(Description\) 给定\(n\)个数\(A_i\),且这\(n\)个数的\(GCD\)为\(1\).两个人轮流进行如下操作: 选择一个\(>1\)的数使它\(-1\). 第一步进行完后,所有数会变成它除以\(g\),其中\(g\)是\(n\)个数的\(GCD\). 当轮到一个人操作,但所有数为\(1\)时,该人输.求先手是否必胜. \(n\leq10^5,\ A_i\leq10^9\). \(Solution\) 首先能发现一些性质: 当有一个数变成\(1\)时,答案只和…