联赛模拟测试14 A. 虎】的更多相关文章

题目描述 这题太虎了,所以没有背景. 给你一棵树,边有黑白两种颜色,你每次可以选择两个点,把这两个点之间的唯一简单路径上的所有边颜色取反,某些边要求最终颜色必须是黑色,还有些边没有要求,问最少操作多少次能达到目的 输入格式 第一行一个整数 \(n\),代表点数 接下来\(n-1\)行,每行三个数\(x,y,z\),代表点 \(i\) 与点 \(x\) 之间有一条边,若 \(y\) 为 \(0\) 代表初始为白色,否则为黑色,若\(z\)为\(0\)代表不对最终颜色做要求,否则代表要求为黑色. 输…
考完19了再写14,我也是够咕的. 14的题很好,也充分暴露了我的问题. T1是个分析性质推结论的题 对于区间[L,R],不妨设a[L]!=a[R],那么两个端点对答案没有贡献,也就是[L+1,R],[L,R-1]都是符合题意的区间. 即 最优的区间的两个端点一定相等 然后把每个数的位置和大小作为区间的两端点,统计答案即可. #include<bits/stdc++.h> #define F(n) for(int i=1;i<=n;i++) ],sum[],n,ans; std::vec…
一大排并列Rank#9之一. 考试题还没改完(而且并不会模拟退火)所以题解又只能咕了 然而并不想吐槽T2对sjzyz是原题导致4个AC里面有3个他们的 虽说这次的成绩不怎么样,但是这次的考试过程是全新的感受,值得记录一下(以后遇到这种情况可能会比较多) 开题,看T1,题面很愚蠢,貌似很简单,数据范围100000,想了半天从n3优化成n2,先不打,换换思路进T2 看一眼,BFS啊.好像挺水的. 然而真的只是看了一眼并没有好好看题,题意理解错,全盘皆输. 45分钟左右码完,一遍过3个样例,交上去.…
题目描述 \(duyege\) 的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,\(duyege\) 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 \(v_i\)的金坷垃 或者除掉最新\(v_i\) 层(不是量)撒的金坷垃.如果上面只留有不足\(v_i\) 层金坷垃,那么就相当于电脑上面没有金坷垃了. \(duyege\) 非常严谨,一开始先给你 \(m\) 个上述操作要你依次完成. 然后又对实验步骤进行了\(q\)次更改,…
T1 旋转子段 30% 暴力枚举起点和长度,暴力判断,o(n3)  不知道为什么我拿了40分... 60% 每一个点都有一个固定的旋转中心可以转成固定点,枚举旋转点和长度. 100% 用一个vector存一下以此点为旋转中心,可以将哪些点转成好点,存区间的左右端点(i,a[i]),将区间长度从小到大排序,枚举中间点,再枚举以他为中心可以将哪些点转成固定点,由于按区间长度排序了,所以第几个点+1就是旋转后当前区间有的固定点个数.区间左右的用前缀和计算即可. #include<iostream>…
先扔代码 调完自闭网络流了,新一轮考试前看看能不能赶完…… 考得极其爆炸,心态也极其爆炸,真的是认识到自己能力上的不足 思维跑偏,代码能力差 就这样吧,再努力努力,不行就AFO T1旋转子段: 因为我和正解的绝缘性,我上来先选择想暴力,搞了搞把暴力优化到n2,行了,就交了 大约是想正解的时候被奇怪的问题hack掉没有解决,于是被踢出了正解门外 这边正解用的是O(n)的做法.一个可以成为答案的旋转子段,如果它的两个端点旋转以后没有一个成为固定点,那么缩短这个子段的长度直到端点出现旋转以后的固定点,…
题目描述 分析 定义出\(dp[i][j]\)为第\(i\)列涂\(j\)种颜色的方案数 然后我们要解决几个问题 首先是求出某一列涂恰好\(i\)种颜色的方案数\(d[i]\) 如果没有限制必须涂\(i\)种,而是有的颜色可以不涂,那么方案数为\(i^n\) 为了避免少涂的情况,我们减去只涂\(1 \sim i-1\)种颜色的方案数 即\(d[i]=i^n-\sum_{j=1}^{i-1}C_i^j \times d[j]\) 初始化为\(d[1]=1\) 接下来考虑转移 \(f[i][j]=f…
题目描述 分析 对于测试点\(1\).\(2\),直接搜索即可 对于测试点\(3 \sim 6\),树退化成一条链,我们可以将其看成序列上的染色问题,用线段树维护颜色相同的最长序列 对于测试点\(7\).\(8\),肯定是车的速度越大能经过的道路越少,所以我们用类似并查集的方法从大到小依次维护联通块的直径,这里要用到一个结论:如果两个点集\(A\).\(B\)的直径分别为\((v_1,v_2)(u_1,u_2)\),那么\(A \cup B\)的直径一定出现在这\(C_4^2\)种选择之中,只要…
题目描述 分析 方法一(线段树) 线段树维护的是以当前节点为左端点的区间的贡献 而区间的右端点则会从 \(1\) 到 \(n\) 逐渐右移 当我们把右端点从 \(i-1\) 的位置扩展到 \(i\) 的位置时 如果原先区间的最近公共祖先到根节点的路径中经过 \(a[i-1]\) 和 \(a[i]\) 的最近公共祖先 那么我们直接把这些区间的价值累加到 \(a[i-1]\) 和 \(a[i]\) 的最近公共祖先上 同时将其子树清空,还要把 \(a[i]\) 位置上的贡献加一 每次移完右端点后都要统…
题目描述 分析 \(80\) 分的暴力都打出来了还是没有想到莫队 首先对于 \(s[n][m]\) 我们可以很快地由它推到 \(s[n][m+1]\) 和 \(s[n][m-1]\) 即 \(s[n][m+1]=s[n][m]+C_n^{m+1}\) \(s[n][m-1]=s[n][m]-C_n^m\) 然后我们考虑怎么由 \(s[n][m]\) 推到 \(s[n-1][m]\) 和 \(s[n+1][m]\) 其实画出杨辉三角观察性质即可 摘自 \({\color{black}{M}}{\c…
题目描述 分析 \(n^2\) 的 \(dp\) 应该比较好想 设 \(f[i][j]\) 为当前在第 \(i\) 天剩余的货物数量为 \(j\) 时的最大收益 那么它可以由 \(f[i-1][j]\),\(f[i-1][j+1]\)和\(f[i-1][j-1]\) 转移过来 用滚动数组能压掉一维 正解类似于可撤销贪心 我们开一个小根堆存放物品 每次取出堆中最小的物品和当前物品比较大小 如果比当前物品大,直接把当前物品扔进堆里 否则我们买入堆顶的物品,在当前卖出,累加贡献,弹出堆顶 并在堆里加入…
题目描述 分析 我们要找的是一段区间的和减去该区间的最大值能否被 \(k\) 整除 那么对于一段区间,我们可以先找出区间中的最大值 然后枚举最大值左边的后缀与最大值右边的前缀之和是否能被 \(k\) 整除 显然暴力枚举肯定会超时 所以我们可以用启发式合并的思想,只枚举长度较小的那一半,而在某种数据结构中查询另一半对应的值 查询的过程可以用主席树,但是常数巨大 其实我们可以对于每一个 \(\%k\) 后的前缀和开一个 \(vector\) \(vector\) 中存放该值出现的位置 然后大力二分即…
题目描述 分析 对于 \(Subtask\ 1\),可以写一个 \(n^3\) 的 \(DP\),\(f[i][j]\) 代表第 \(i\) 个建筑高度为 \(j\) 时的最小花费,随便转移即可 时间复杂度 \(O(n \times h^2)\) 对于 \(Subtask\ 2\),我们沿用 \(Subtask\ 1\)的思路,记录前缀后缀 \(min\),将复杂度优化至 \(O(n \times h)\) 但是显然两维的定义无法继续进行优化,我们可以考虑改变一下定义的方式 设 \(f[i]\)…
题目描述 分析 首先,容易发现一个小组内的最优配对方式(能得到最大综合实力的方式) 一定是实力值最大的男生和最大的女生配对,次大的和次大的配对,以此类推. 但是每次新插入一个值时,需要用 \(nlogn\) 的时间复杂度去维护这个最大实力值 如果暴力去扩展时间效率是无法接受的 然后我们会发现答案具有单调性,可以枚举一个左区间,然后二分查找右区间 但是当遇到每一组的人数很小的情况时,二分会被卡成 \(n^2 logn\) 因此我们需要先用倍增处理出二分的区间 在处理出的区间里进行二分查找 这样,当…
题目描述 分析 \(\sum_{i=0}^p[(p|qi)?0:1]=\sum_{i=0}^p[(p/gcd(p,q)|qi/gcd(p,q))?0:1]=\sum_{i=0}^p[(p/gcd(p,q)|i)?0:1]=p-p/gcd(p,q)\) 代码 #include<cstdio> long long t,p,q,ans; long long gcd(long long aa,long long bb){ if(bb==0) return aa; return gcd(bb,aa%bb…
题目描述 分析 暴力的思想是把 \(2^n\) 种得分枚举出来,每一种得分的概率都是相同的,然后从小到大累加,直到大于等于所给的概率 把问题转化一下,就变成了在 \(2^n\) 种元素中求 \(k\) 小值 \(n\) 的范围是 \(40\), \(2^{40}\) 不可过,但是 \(2^{20}\)可过 把序列分成两半,每一半的大小都是 \(2^{n/2}\),分别排序 二分 \(k\) 大值,在另一半中查找与当前这一半中某个元素的和恰好小于等于当前值的元素个数 因为元素大小具有单调性,所以二…
题目描述 分析 因为跨过最大值的区间一定是合法的,所以我们人为地把最大值放在最左边 我们要统计的就是在最大值右边单调不降的序列,可以用单调栈维护 需要特殊处理相同的情况 代码 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define rg register inline int read(){ rg int x=0,fh=1; rg char ch=getch…
题目描述 分析 考虑自底向上贪心 \(f[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的需要灭火器的房间数,\(g[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的多余灭火器数 每个灭火器和房间的匹配在 \(lca\) 处处理 每次假设子树里已经最优了,那么 \(f[x][k]\) 一定要用 \(g[x][0]\) 填满 然后距离为 \(k\) 的一定会在 \(x\) 处匹配掉,否则到上面不会更 优(可以交叉互换) 在不存在距离为 \(k\) 的前提下,\(k-1\)…
旋转子段 连60分都没想,考试一直肝t3,t2,没想到t1最简单 我一直以为t1很难,看了题解发现也就那样 题解 性质1 一个包含a[i]旋转区间值域范围最多为min(a[i],i)----max(a[i],i) 感性理解 举个例子,例如3 7 1 4 5 6 2 这个子段包含a[2]的最大为值域范围2----7 具体证明我不会 性质2 翻转后满足固定点对的点满足 a[i]+i==a[j]+j 证明 因为翻转之前a[i]==j&&a[j]==i才满足翻转之后都构成点对 移项得到a[i]+i…
模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还剩十分钟的时候写了个枚举用小数据把自己的80分代码卡掉了,后来交了个枚举60分… T2枚举的30pts和exgcd的20pts都爆炸了. T3还好,一眼数位DP也的确是数位DP,基本上推出正解来了,但是在前导0的地方卡了很久…最后急匆匆写了个枚举交上去了,加上特判一共40pts. T1折纸: 思路很…
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具在线DEMO:http://weixin.senparc.com/SimulateTool Senparc.Weixin.MP是一个开源的微信SDK项目,地址:https://github.com/JeffreySu/WeiXinMPSDK (其中https://github.com/Jeffrey…
Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象.mock对象就是真实对象在调试期间的代替品. 简单的看一张图 我们在测试类 A 时,类 A 需要调用类 B 和类 C,而类 B 和类 C 又需要调用其他类如 D.E.F 等,假如类 D.E.F 构造很耗时又或者调用很耗时的话是非常不便于测试的(比如是 DAO 类,每次访问数据库都很耗时).所以我们引入 Mock 对象. 如上图,我们将类…
出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/translate/an-introduction-to-mocking-in-python 如何不靠耐心测试 通常,我们编写的软件会直接与那些我们称之为“肮脏的”服务交互.通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用——就是那些在我们自己测试的时候不希望…
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随机化 然后很着急,想再写一个部分分,结果没编译就交了... 不管在多么紧急的情况下,都要检查,编译. ...还不如不对拍拿一个伪的20... 然后T3少考虑一种情况.挂了. T1:合并集合merge 区间dp板子. #include<cstdio> #include<bitset> #…
csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板子打完并拍上,$T2$题意看瞎我对不起你老男人帅哥,$T3$ $qnmd$你家普及考这个?? 100 00:00:20 20 00:00:14 60 00:00:08 180 00:00:20 本来应该是$220$的大众分,但是我上界写错了就很难受了. A. 陶陶摘苹果 像题目一样+++即可. B.…
csp-s模拟测试92 关于$T1$:最短路这一定建边最短路. 关于$T2$:傻逼$Dp$这一定线段树优化$Dp$. 关于$T3$:最小生成树+树P+换跟一定是这样. 深入(?)思考$T1$:我是傻逼. 深入(?)思考$T2$:我是天才! 深入(?)思考$T3$:我是天才! 100 01:14:19 02:36:26 03:19:48 125 03:19:48 事实证明我是傻逼. A. 数列 故意删掉负数读入$Rp--$ $Exgcd$,对绝对值大力分类讨论,一次函数求最值. 考场死活调不过大样…
csp-s模拟测试89 $T1$想了一会儿没什么思路,一看$T2$  $1e18$当场自闭打完暴力就弃了,$T3$看完题感觉要求$lca$和$dep$,手玩了一下样例发现$lca$很显然,$dep$貌似是一个上升子序列,多画了几个发现结论好像是正确的,但是复杂度不对就又回去看$T1$(然后就切了). 突然感觉$T3$可以打线段树就打了俩小时但是没调出来(不先打暴力的$60$???).然后就开始日常自y闭y. 03:14:28 03:15:41 03:16:02 120 03:16:02 和预估一…
csp-s模拟测试60       2019-10-05 RT. 又颓又垃圾. 状态低迷,题都交不上去. 交了也是爆零,垃圾玩家没有什么可说的,就是垃圾. A. 嘟嘟噜 $mlogn$的毒瘤做法. 贴一个不一样的毒瘤做法. 1 //ans=(ans+m)%i 2 #include <cstdio> 3 #include <cstring> 4 #include <iostream> 5 #include <algorithm> 6 #define re re…
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabricator differential 发diff时提交需要执行的单元测试,在开发流程上就可以保证远端代码的稳定性). 2. 测什么? 一般单元测试: 列出想要测试覆盖的异常情况,进行验证. 性能测试. 模拟测试: 根据需求,测试用户真正在使用过程中,界面的反馈与显示以及一些依赖系统架构的组件的应用测…
uwsgi帮助文档: http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html http://uwsgi-docs.readthedocs.io/en/latest/Async.html http://www.cnblogs.com/xiongpq/p/3381069.html ./configure: error: the HTTP rewrite module requires the PCRE library错…