摘要: 传送门:https://codeforces.com/problemset/problem/962/C 题意:给定数n(1~2e9),可任意删某位上的数字,尽量使剩下的数开方后为整数,输出最少可删多少位数。 随便搞一搞,先把1~1e5所有数的平方存下来, 接下来就是怎么筛数了 咋筛呢 n最多9位 从 阅读全文
posted @ 2019-05-07 15:13 op-z 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 图论蛮好玩的呢 比起数论真是有趣多了 有空整理一下下 首先,图是个什么鬼东东呢 graph, 一堆点集,一堆边集,可以把各种事物抽象成点,事物之间的联系用边来表示,边上还可有权值,表示距离费用等 e.g. 把各个城市抽象成点,城市之间可以由高铁直达的称作有联系(边), 边上还可附加权值,俩城市间距离 阅读全文
posted @ 2019-05-03 00:57 op-z 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题意:给定数n,可进行两种操作:乘一个任意数x; 开方,( sqrt(n)必须为整数 输出可达最小值ans 及 最小操作数 一个数可分解成有限个质数的幂次相乘:n=p1^x1 * p2^x2 * p3^x3..., 则n的所有质因子的乘积即为ans 接下来就是找所有质因子和判断最小操作数了 从 i= 阅读全文
posted @ 2019-05-02 17:17 op-z 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:从1~n中选最多k个数,使异或值最大 啊啊啊 no more than k 每次都自动忽略 奇了怪了 刚开始以为必须选k个数, 想了半天 wa 既然最多能选k个数 那选俩异或值最大的(k==1 就只能选n了 2^p xor z^p-1 == 2^(p+1)-1 能得到最大值 找<=n的最大2^ 阅读全文
posted @ 2019-04-30 18:43 op-z 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 数学技巧真有趣,看出规律就很简单了 wa 题意:给出数k 输出所有阶乘尾数有k个0的数 这题来来回回看了两三遍, 想的方法总觉得会T 后来想想 阶乘 emmm 1*2*3*4*5*6*7*8*9*10...*n 尾数的0只与5有关 是5的几倍就有几个0 因为5前面肯定有偶数 乘起来就有一个0 而且最 阅读全文
posted @ 2019-04-29 16:28 op-z 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 从 i : 1~n, 是i的倍数, 则计入该数 复杂度 n*(1/1+1/2+1/3+...1/n)=nlogn 阅读全文
posted @ 2019-04-29 15:30 op-z 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 1.整数快速幂 计算 a^p a ^ p =a ^ ( k * d + c ) = ( a ^ k) ^ d * a ^ c; e.g. 2 ^ 5 = ( 2 ^ 2 ) ^ 2 * 2 ^ 1 计算次数减少 对应p的二进制位,若该二进制位为1, ans乘上该位的res幂次,每二进制位乘上该位幂次 阅读全文
posted @ 2019-04-27 15:35 op-z 阅读(139) 评论(0) 推荐(0) 编辑
摘要: lower_bound() 在数组中搜索时 搜不到 返回 .end(), 若需要返回0,用upper_bound()-lower_bound() 若要返回下一个下标 则需要在set / multiset 中使用lower_bound() 下面是测试代码及样例 #include<iostream> # 阅读全文
posted @ 2019-04-27 13:16 op-z 阅读(2288) 评论(0) 推荐(0) 编辑
摘要: 题意: n项工作 1~n 工时s[i] ~e[i], 工时有覆盖的工作不能被同一台机器同时操作, 问完成所有工作的最少机器数 思路:前缀差分和 e.g. a 2 3 4 machine 2 b 1 2 3 machine1 c 5 6 7 machine2 a做完后空闲做c d 3 4 5 6 7 阅读全文
posted @ 2019-04-25 23:30 op-z 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 区间修改 查询等 详见注释 阅读全文
posted @ 2019-04-24 17:03 op-z 阅读(154) 评论(0) 推荐(0) 编辑