PKUSC订正】的更多相关文章

Day1 T2:最大前缀和 枚举答案集合(不直接枚举答案数,相当于状态的离散化),这个集合成为答案当且仅当存在方案使得答案集合的排列后缀和>=0(如果<0就可以去掉显然更优),答案补集的前缀和<0(不能再延伸).预处理方案数.最后统计的时候注意要枚举答案子集的第一个元素,它不需要满足后缀和>=0.O(2^n*n). #include<bits/stdc++.h> using namespace std; ; typedef long long ll; ; int n,M…
最近在做多数据库合并的脚本, 要将多个分数据库的表数据合并到一个主数据库中. 以下是我在编写数据订正脚本时犯过的错误, 记录以为鉴. 不必要的查询 请看以下语句: regiondb = db.Houyiregiondb() houyidb = db.Houyidb(read_only=False) regiondbRet = regiondb.query(vmmacsFromRegiondbSql) houyidbRet = houyidb.query(vmmacsFromHouyidbSql)…
mysql 数据库数据订正 http://blog.itpub.net/22664653/viewspace-717175/ 工作过程中时常遇到数据订正的需求,该操作本身不难.操作时要求能够保持回滚~对于能够满足回滚的要求,我通常执行备份表,然后执行变更!如果发送订正错误或者用户要求回滚的时候,就完全恢复整个表,这样做会有多余的操作,因为我们只要 实际上可以选择备份要进行更正的数据!比如如下需求: 将表resource中usage_type='unused' 并且 user_id=166 的记录…
[LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC 试题描述 九条可怜是一个爱玩游戏的女孩子. 最近她在玩一个无双割草类的游戏,平面上有 \(n\) 个敌人,每一个敌人的坐标为 \(x_i,y_i\).可怜有一个技能是在平面上画一个 \(m\) 个点的简单多边形,并消灭所有严格在多边形内部的敌人. 不难发现如果想要快速的消灭敌人的话,只要画一个足够大的简单多边形就行了.但是这样的游戏性就太差了.于是可怜打算为游戏增加一定的随机性. 可怜在平面上随便画了一个 \(m\) 个点…
PKUSC 2018 题解 Day 1 T1 真实排名 Link Solution 考虑对于每一个人单独算 每一个人有两种情况,翻倍和不翻倍,他的名次不变等价于大于等于他的人数不变 设当前考虑的人的成绩为 \(v\) 翻倍的话,要求成绩在 \([v, 2v-1]\) 的人全部翻倍,剩下的随便 统计一下这段区间的人数,组合数算一下即可 不翻倍的话,要求成绩在 \([\frac {v+1} 2,v-1]\) 的人不翻倍,因为他们如果翻倍就超过了当前这个人 所以同样统计一下,加上组合数即可 注意成绩为…
[LOJ 6435][PKUSC 2018]星际穿越 题意 给定 \(n\) 个点, 每个点与 \([l_i,i-1]\) 之间的点建立有单位距离的双向边. \(q\) 组询问从 \(x\) 走到 \([l,r]\) 中的随机一点的期望距离. 输出既约分数. \(n,q\le 3\times 10^5\), \(l<r<x\). 题解 显然对于一个 \(k\), \(k\) 步之内能到达的点是 \([1,x)\) 的一个后缀. 那么也就是说 \([1,x)\) 中的点的答案被分成了若干段, 每…
[LOJ 6433][PKUSC 2018]最大前缀和 题意 给定一个长度为 \(n\) 的序列, 求把这个序列随机打乱后的最大前缀和的期望乘以 \(n!\) 后对 \(998244353\) 取膜后的值. 前缀和不能为空. \(n\le 20\). 题解 首先这个期望显然是逗你玩的...只是计数而已 然后我们把一个序列拆成两部分, 一部分前缀和都不大于总和, 一部分前缀和都不大于 \(0\). 那么显然这样的一个序列的最大前缀和就是第一部分的和. 我们只要知道有多少个这样的序列就好了. 后面的…
[LOJ 6432][PKUSC 2018]真实排名 题意 给定 \(n\) 个选手的成绩, 选中其中 \(k\) 个使他们的成绩翻倍. 对于每个选手回答有多少种方案使得他的排名不发生变化. \(n\le 10^5\) 题解 场上唯一A掉的题? 分两类讨论, 一类是当前选手翻倍了, 一类是不加倍. 如果当前选手不加倍, 那么所有加倍后会超过当前选手的选手都不能加倍, 其他人随意. 方案数量显然就是在剩下的人中选 \(k\) 个的方案数量. 如果当前选手加倍, 那么所有加倍后被超过的选手也必须加倍…
  出游回来自然而然(?)地进入生产低谷的兔子只能写写游记了 qwq. Day -1 实时反馈赛制不是为防止你被数据调戏,而是给你调戏数据的机会. --鲁迅   PKU 一贯的 \(32\) 发提交实时反馈取 \(\max\) 的计分规则让我们被迫干起考试前一天做随机乱搞题的掉人品之为.(   欸这个,[NOI2008] 赛程安排,快乐调参 + 挂机颓废 + 交流取经,玩了一下午,凭借爆发的"兔品"(?)搞到全机房最高的 \(91\text{pts}\),就挺嗨.   糟糕糟糕,考前随…
流水账 Day-4 写了ICPC的一道DP,有点细节,虽然写得有点难受,但挺好玩 Day-3 写了PKUSC2018最水的一题 是随机开的题 Day-2 可以去pkusc了,从今天中午开始停课 刚吃完饭就开始模拟考试,晕晕乎乎的,好在dalao们上午考完了,在后面议论,给了一点灵感 T3是个题答,其实就是对于可用的语句和代码运行行数有限制,然后写程序,反正写得让人很难受,只写了两个点,结果还没法测 晚上继续听 cy 的话写以前pkusc的题目,写了亿会发现假了,开始自闭 Day-1 上午朱神问我…
\(PKUSC\ 2022\)口胡题解 为了更好的在考试中拿分,我准备学习基础日麻知识(为什么每年都考麻将 啊啊啊) 首先\(STO\)吉老师\(ORZ,\)真的学到了好多 观察标签发现,这套题覆盖知识点广,难度适中,是一套不可多得的题 \(DAY1\) \(T1\) 考虑过程必然是,一个值小的在参加若干轮之后超过大的,然后目前值小的参加若干轮依次交替 首先考虑单个变量 我们枚举\(i\)向后跳的第一步,假设跳到\(i-j,\)然后后面的过程是 \(i->j\)表示进行若干轮之后,中间过程不超过…
有9个人,每三个人中至少有两个互相认识,求证这里面至少有4个人互相认识 PKU官方题解: 引理:二染色K6中一定有同色K3. 证明:考虑某一个点,它一定连出至少三条同色边(不妨设为红边),这三条边连的三个点之间的连边,如果存在红色边,那么有红色K3,如果不存在红色边,那么这三个点构成蓝色K3. 下证:二染色K9(下称为G)中的一个点,最多连出三条蓝色边: 如果存在某一个点,连出了至少4条蓝色边,考虑这四条边连的四个点之间的连边,如果存在蓝色边,那么有蓝色K3,否则有红色K4,命题得证. 于是对于…
本来想考得这么烂还是别写了,后来想想毕竟是我高中难得的一次经历,靠脑子记的话我这脑残患者将来肯定会忘了啊……QwQ 好像跟我一样用这个题目的神犇都签了一本QwQ Day 0 来的路上我校其他三位OIer都去玩苹果了……蒟蒻并没有什么共同语言,所以自己默默地打War3 幸运的是找到了住的地方(没有提前预订真是失策,下次一定注意(不过没有下次了) 中午12点多才办好住宿,房间条件很棒啊,然而没饭吃已经快饿死了……打电话叫的外卖,然而好像不应该要中餐?盖饭过了一个小时才送来,吃上饭已经是2点了……身心…
之前挖了两个大坑 一个是day1下午的第二题 另一个是day2上午的第五题 先说day1下午的第二题吧 我们显然不能O(n^2)的dp,所以我们只能算贡献 首先对于任意一个边界点而言,他对答案的贡献路径有很多,但是贡献的系数都形如a^c*b^d的形式 而且很容易发现贡献系数是一个定值,那么贡献次数就等于贡献路径的条数,就等于从这个点走到(n,n)的方案数 这是能用组合数算出来的 可以得出贡献系数为 C(2n-i-2,n-i)*a^(n-1)*b^(n-i)或者C(2n-i-2,n-i)*a^(n…
终于考完了,下午身体状况很不好,看来要锻炼身体了,不然以后ACM没准比赛到一半我就挂掉了 下午差点AK,有一道很简单的题我看错题面了所以没有A掉 第一题显然是非常丝薄的题目 我们很容易通过DP来O(n^2)的求出深度至多为k的方案 然后我们很容易通过DP来O(n^2)的求出深度至多为k-1的方案 转移的时候分当前放左括号或者右括号讨论就可以了 两个作差就是答案了,单次询问时间复杂度O(n^2) 如果给dp加一维O(n^3)预处理,O(1)回答 当然要写高精度 成功抢到下午的first blood…
今天上午考得不是很好,主要还是自己太弱QAQ 开场第一题给的图和题意不符,搞了半天才知道原来是走日字形的 然后BFS即可 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cstdlib> #include<queue> using namespace std; const int maxn=110; int n,m,a…
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> #include<algorithm> using namespace std; const int maxn=100010; char…
思考了一下第二题,觉得有无数种乱搞做法 类似什么bitset压位,MCS染色之类奇怪的做法 然而都是玄学正确性或者玄学复杂度 先放题解把 第一题显然具有单调性,二分就可以啦 O(nlogn),貌似输出要求去尾QAQ #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cstdlib> #include<cmath> #de…
已完成2/9(要准备中考啊QwQ) T1 考虑对所有数分解质因数,其中因子>sqrt(100000)的因子最多有一个,于是我们可以暴力维护<sqrt(100000)的因子个数的前缀和. 剩下的就是判区间里一个数出现的次数.我写了主席树... code #include <bits/stdc++.h> using namespace std; ],prime2[],b[],num1[],num2[],tt,c[],s[][]; inline int read(){ ,f=; char…
题解 我们把这个多边形三角形剖分了,和统计多边形面积一样 每个三角形有个点是原点,把原点所对应的角度算出来,记为theta 对于一个点,相当于半径为这个点到原点的一个圆,圆弧上的弧度为theta的一部分 相当于一条直线和这个小圆弧求交,直接算出有交的角度然后累加最后除2PI即可 可以拿余弦定理爆算(反着也不是你自己算 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,in…
题目大意:给你一个m个点的简单多边形.对于每个点i∈[1,n],作一个以O点为原点且过点i的圆,求该圆在多边形内的圆弧长度/圆长. 其中n≤200,m≤500. 我们将n个点分开处理. 首先,我们要判断需处理的圆,是否被包含在多边形内,或者圆把多边形包含了. 我们显然可以从原点出发,向上作一条x=0的射线,判断该射线与多边形有多少个交点. 显然,若交点数量为奇数个,那么该点就在多边形内,否则在多边形外. 若圆与多边形存在交点,我们对多边形的每条边,求出其与圆,有多少个交点(0个,1个,2个,其实…
id原先是可以通过path指定字段的 "thread": { "_id" : { "path" : "thread_id" }, } 但是现在不行了,具体见: http://stackoverflow.com/questions/33428976/elasticsearch-2-0-id-is-not-configurable https://www.elastic.co/blog/great-mapping-refactor…
题面 传送门 题解 计算几何的东西我好像都已经忘光了-- 首先我们可以把原问题转化为另一个等价的问题:对于每一个敌人,我们以原点为圆心,画一个经过该点的圆,把这个圆在多边形内部的圆弧的度数加入答案.求总的度数是多少 因为这是个简单多边形,我们可以把它给三角形剖分.就是说把每条边都和原点构成一个三角形,然后对圆计算这个三角形的贡献,根据这条边的顺逆时针顺序来决定贡献要加上还是减去.易知最后的贡献就是这个多边形的贡献 那么我们对于每一个圆,暴力枚举多边形的一条边和原点构成的三角形,然后判一下圆弧和三…
有9个人,每三个人中至少有两个互相认识,求证这里面至少有4个人互相认识 PKU官方题解: 引理:二染色K6中一定有同色K3. 证明:考虑某一个点,它一定连出至少三条同色边(不妨设为红边),这三条边连的三个点之间的连边,如果存在红色边,那么有红色K3,如果不存在红色边,那么这三个点构成蓝色K3. 下证:二染色K9(下称为G)中的一个点,最多连出三条蓝色边: 如果存在某一个点,连出了至少4条蓝色边,考虑这四条边连的四个点之间的连边,如果存在蓝色边,那么有蓝色K3,否则有红色K4,命题得证. 于是对于…
旋转多边形是没有前途的,我们考虑旋转敌人,那么答案就是所有人的可行区间长度之和除以$2\pi$ 首先对每个敌人找到那些旋转后会落到多边形上的角度,实际上就是圆和一些线段求交,解方程即可,注意判一下落在多边形端点上的情况 把角度排序,每相邻两个角度构成一个区间,在区间内随便取一个角度,把敌人旋转这个角度,判断敌人是否在多边形内,如果是那么整个区间都是可行的 旋转直接套公式:$\left[\matrix{x'\\y'}\right]=\left[\matrix{\cos\theta&-\sin\th…
线段树合并+树上差分 题目链接(···) 「简单」「一般」——其实「一般」也只多一个离散化 考试时想法看>这里< 总思路:先存所有的操作,离散化,然后用树上差分解决修改,用权值线段树维护每个值的个数,最后dfs合并处理答案(先处理儿子,再合并自己和儿子,递归解决) 简单版当然不用离散话辣. 做了好几天,感觉自己傻了. 但是好像也不是这样的 事实上,这道题确实扩充了我对线段树的认识. 它它它还可以不存左右区间的啊?——一定是我太蒻了 先附样例以示敬意 Sample Input Sample Ou…
AC自动机已经足够棒了. 但是,好像有时还是要TLE的. 一般的AC自动还是比较好,如果在某些情况下还是会被卡掉,像是这个水题 考试的感觉 我看到这个题后,我清清楚楚的知道,这是个AC自动机+栈. 经过一番努力,把AC自动机打了出来,然后略加修饰,把栈补在里面. 我一复制,一粘贴,更高兴(?)了,过样例了,噫,我要A了. 但是我又随便写了一坨字符进去,然后就,不对了------ 最后也没调出来,后来我想想,好像是没恢复搜索栈顶元素. 我太菜了. ---以上都是废话--- 更改的过程 我T60之后…
1.官网中在导入“of”关键字时的引用为: import { Observable, of } from 'rxjs'; 应该改为: import { Observable } from 'rxjs/Observable';   import { of } from 'rxjs/observable/of':     2.在第8节的HTTP中,需要导入angular2-in-memory-web-api包,此时系统会默认导入最新包,为0.6.0:     但是此时Angular中@angular…
LOJ 思路 显然多边形旋转可以变成点旋转,不同的点的贡献可以分开计算. 然后就变成了要求一个圆在多边形内的弧长. 考虑把交点全都求出来,那么两个交点之间的状态显然是相同的,可以直接把圆弧上的中点的状态求出来. 求圆弧上的中点也要特判两个向量恰好相反,或是转的角度大于\(\pi\). 然后求交点--求出和直线的交点再判一下在线段上即可. 然而--有一种较为恶心的情况:没有交点或是只有一个交点,此时可能圆把多边形包住了,也可能是被包住了. 判一下这个点随机转某个角度后是否在多边形内即可. 还要特判…
传送门 Solution  考虑求每个点的贡献 等价于一个以OA长为半径的圆心为原点的圆在多边形内的弧对应的角度/\(2\pi\) 求弧度可以利用三角剖分 在原点的点要特判,采用射线法就可以了 Code  #include <bits/stdc++.h> #define reg register #define ll long long #define db double using namespace std; int read() { int x=0,f=1;char ch=getchar…