T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check时间复杂度不太对),check的时候把大于等于当前值的设为1,小于当前值的设为-1,然后题目就变成了查询是否有区间的值大于零(因为和它相同的我们也设为了1). 查询的时候维护一个前缀最小值. #include <iostream> #include <cstdio> #include…
蒟蒻我可能考了一场假试 T1 绩点 这题没什么好说的,应该是只要会语言的就会做. T2 巨大的棋盘 一个模拟题吧qwq,但是要注意取模的时候先加上n或者m再取模,要不然会错的. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define MAXN 100010 using namespace std; int n,m,t,q; string s; long…
T1 动态点分治 就是模拟..... 但是没有过!! 看了题解之后发现.... 坑点:有可能 \(x<=r\),但是…
就是DP. 我们可以很简单的想到要枚举中间点,进行边数的转移. 但是因为边长数据范围很大,所以我们考虑log的倍增. 状态设计为\(dp[i][j][k]\),为从节点\(i\)走\(2^k\)步能否走到节点\(j\).但是我们发现这样不好转移状态(其实是我不太会啊) 正解是状态压缩,但是因为\(n\)有点大,所以这里介绍一个黑科技:\(bitset\) bitset只能存储0或1,但是较bool来说空间更优,一个元素只占一个bit,而且其中的每个元素都可以被单独访问或者修改--比如说访问s的第…
其实看懂题就很水啦qwq,就是求\(1-N\)的约数啦. 暴力求的话时间复杂度是\(O(NlogN)\)的,其实正解是枚举每个数的倍数......这样的时间复杂度是\(\frac{N}{1}+\frac{N}{2}+...+\frac{N}{N}\)的,由于调和级数可以看做\(O(log)\),所以总复杂度为\(O(NlogN)\). 但是比赛的时候我写的是那个复杂度很劣的做法,所以....代码就先放这个了..(注意%运算是真的慢....) #include<iostream> #includ…
区间不好做,但是我们可以转化成前缀来做.转化为前缀之后之后就是二维前缀和. 但是我还是不怎么会做.所以只能去看吉老师的题解 (确定写的那么简单真的是题解???). 我们要求模一个数余0,就等于找它的倍数.找它的倍数自然只要知道区间就可以了. 题解上面说:如果\(r1=2^n\),\(r2=2^m\),不妨设 \(n<=m\),那么结果一定在区间 \([0,2^n)\)中,而 且每一个值出现了 \(2^m\) 次 这是很显然的,因为按照异或的运算法则来讲,不可能会有比r1最高位1还高的位出现.而且…
牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algorithm> #include <cstring> #include <cstdio> #include <cmath> using namespace std; typedef long long LL; ; int n, m; double sum; LL a[M]…
牛客网提高组Day1 T1 中位数 这好像是主席树??听说过,不会啊... 最后只打了个暴力,可能是n2logn? 只过了前30%  qwq #include<algorithm> #include<cstring> #include<cstdio> using namespace std; ; int n, len; int tmp, ans; int a[M]; struct nond { int id, num; }e[M]; bool cmp1(nond x,…
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n,m)\).每次移动可以选择移动到自己右上方的某一方格,且横坐标和纵坐标的变化都不能超过\(k(k\le2000)\).求一共有多少种移动方案? 思路: \(f[i][j]\)表示走到\((i,j)\)的方案数,一边DP一边维护二维前缀和即可. 时间复杂度\(\mathcal O(nm)\). 源代码…
染色 链接: https://ac.nowcoder.com/acm/contest/176/A 来源:牛客网 题目描述 \(\tt{fizzydavid}\)和\(\tt{leo}\)有\(n\)个方格排成一排,每个方格初始是白色.\(\tt{fizzydavid}\)有红色染料,\(\tt{leo}\)有蓝色染料.他们共进行了\(m\)次操作,在每次操作中,\(\tt{fizzydavid}\)或者\(\tt{leo}\)会选择若干个(可以是零个)连续相邻的方格并用自己的染料给这些格子染色.…