蒟蒻我可能考了一场假试 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 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check时间复杂度不太对),check的时候把大于等于当前值的设为1,小于当前值的设为-1,然后题目就变成了查询是否有区间的值大于零(因为和它相同的我们也设为了1). 查询的时候维护一个前缀最小值. #include <iostream> #include <cstdio> #include…
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还高的位出现.而且…
ZROI 普及组模拟赛02总结 先放[网址][http://zhengruioi.com/contest/96] 可能是有一段时间没有打这种正式的比赛了,今天打的很奇怪... T1 模拟水题 既然是普及组模拟赛T1还是比较良心的 20分钟就过掉了 T2 <论不仔细观察题目导致的惨案> 没有发现莫尔斯电码非常的全 所以应该枚举哪些不行,而不是枚举26个字母 但是根据计算\(2*26*1e6\)也能跑过去啊 不知道为什么就是超时了... 最可笑的是还卡了20min的常数,还自己造了几组1e6的数据…
牛客网提高组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,…
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.chicken 好难啊!好简单啊! 题目简化 求输入的几对x,y中最小的x/y*1000 比赛思路 难!难!难!这什么意思啊? 比赛过程 算几下不知何意,跳过之 错因 不懂题目意思,语文差 正解 扫一遍,包括第一个,取最小的. 二.match 好简单,好难,好繁杂 题目简化 往九宫格内填字母,得出六个…