
思维好题
无
猹猹猹
编译错误!
展开
-
POJ - 3347 Kadj Squares | 计算几何思维题
sada原创 2020-11-09 22:28:40 · 122 阅读 · 0 评论 -
2020牛客多校 2-G Greater and Greater
描述Greater and Greater给出a、b两个串,长分别为n<=1.5e5,m<=4e4,求a中有多少长为m的连续子串t,使得ti>=bi题解官方题解:S的情况最多有m个,将b串和下标一起排序,根据下标,就能确定m种S,之后二分确定ai对应的是哪一个S代码#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<原创 2020-07-15 17:29:30 · 358 阅读 · 0 评论 -
CF - 1354D | 二分 & 区间第K小 & 思维
描述n个数,q个询问,每次询问输入一个数b (|b|<=n),b>0,将该数加入到一开始的数集合中(多重集),b<0,删除集合中第|b|小的数。q此询问后,若最后集合为空,输出0,否则任意输出一个剩余的元素。1<=n,q<=1e6,且空间限制不允许使用线段树。题目只要求输出q次询问后任意一个剩余元素,考虑输出剩余元素的最大值,二分枚举该最大值,检测枚举值是否合法。设检查的值为x,最终小于x的数有p个,若p<siz,则x可以继续缩小。代码#include&l原创 2020-05-18 14:20:42 · 169 阅读 · 0 评论 -
CF - 1350C | 数论
题目求gcd(lcm(ai,aj)∣i<j)gcd(lcm({a_i,a_j}) | i<j)gcd(lcm(ai,aj)∣i<j),其中2≤n≤100000,ai≤2e62≤n≤100000,a_i≤2e62≤n≤100000,ai≤2e6。gcd(lcm(a,b),lcm(a,c),lcm(a,d))=lcm(a,gcd(b,c,d))gcd(lcm(a,b), lcm(a,c), lcm(a,d)) = lcm(a, gcd(b,c,d))gcd(lcm(a,b),lcm原创 2020-05-17 11:11:24 · 232 阅读 · 0 评论 -
CF - 1348D | 思维
题目大意:初始时有一个细胞有一个单位的重量,每个细胞每天增长1个单位的重量,每天你可以选择任意数目的细胞让他们分裂,即一个变成两个,对总重量无影响,但之后分裂的细胞也会每天增长(先分裂,再增长)。问最少增长几次,可以使总重量恰好为n(n<=1e9)。输入:多组测试,t次,每次输入一整数n。输出:输出最少增长次数d,接下来d个整数,表示每次增长的个数。设第i天个数为ai,则相当于...原创 2020-05-04 18:25:42 · 192 阅读 · 0 评论 -
ZOJ - 2974 | 矩阵快速幂模板
题目描述:n个杯子,每个杯子(i)每轮将自己的水平分给第i1,i2…个杯子,问m轮后各个杯子内水的多少。 n<=20, m<=1e9。设一开始各个杯子内容量为x[1][n]数组,分配情况为y[n][n](y[i][j],表示i分配给j自己容量的占比)。则x *(y^m)后,一维数组x内就是各个容器内含量。代码,附模板:#include<cmath>#incl...原创 2020-04-30 18:08:24 · 149 阅读 · 0 评论 -
计蒜客 数列求和
计蒜客—数列求和题目:Input:2-756.89 52.52172.22 67.17Output:-761.49题解:A(i+1) = Ai*2 - A(i-1) + Ci*2那么:A2 = 2*A1 - A0 + 2*C1A3 = 2*A2 - A1 + 2*C2A4 = 2*A3 - A2 + 2*C3不考虑Ci,A2 = 2*A1 - A0。A3 = 2*A...原创 2020-04-22 18:05:44 · 354 阅读 · 0 评论 -
CF - 1330D
给定一个数d,求有多少数列,满足:1<=a1<a2…an<=n,且a1⊕a2>a2, a1⊕a2⊕a3>a3…首先,设a1的二进制最高位为第i位,那么a2最高位>i。像是分组背包的思想,最高位为i的元素为一组,因为最高位为i,那么该组只能选最多一个。dp[i]为以最高位元素为i结尾的数量,那么dp[i] = (1 + dp[ 0 ~ i-1])*(2^...原创 2020-04-10 18:07:54 · 133 阅读 · 0 评论 -
CF - 1333C
CF - 1333C题目定义good数列:不含有和为0子串的的数列。给定一个数组,问其中多少子串是good数列。运用dp的思想,设dp[i]是前i个数的good子串数量,已知dp[i-1]求dp[i]时,就要找到从1到i,起点pos最靠右的子串,该子串和为0,那么新增的good子串数就是i-pos。为了维护pos,前缀和sum[i]已知,只要找到sum[k],sum[k]==sum[i...原创 2020-04-09 17:28:45 · 287 阅读 · 0 评论