自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 清华北大计算所自动化所计算机夏令营详细攻略

前言个人情况关于保研必须想清楚的几件事Q:计算机专业,要不要读研?读硕士还是博士?Q:我应该在国内读研,还是在国外读研?夏令营经历五月夏令营清华大学软件学院清华大学交叉信息研究院七月夏令营清华大学计算机系夏令营中国科学院计算技术研究所夏令营中国科学院自动化研究所夏令营北京大学信息科学技术学院夏令营反思与感想前言我早已料到今年计算机的...

2018-10-01 19:41:11 13887 13

原创 NOI 1087

题目:给出1000个点,找其中可以构成正方形的个数基本想法:枚举边,同时满足长度相等,中心相等,方向垂直即可。方案一:处理出所有的边,log地查找符合要求的边。复杂度(ElogE),E<5*1e5,T方案二:枚举对角顶点,每次计算出剩下两个顶点的位置,位置都存在点,则满足条件。复杂度(Elogn),E<5*1e5,n<1e3,T。方案二T了就很懵逼,5*1e6都能跪??然后发现我...

2018-06-20 11:50:28 245

原创 CF 519D

题目:找出字符串中权值和为0且首位字母相同的子串个数题解:计算前缀和。#include<iostream>#include<string>#include<map>using namespace std;long long alpha[26];string str;int main(){ for(long long i=0;i<26...

2018-05-16 22:52:01 232

原创 CF 519C

题目:水题不翻题解:for循环c语言练习题#include<iostream>#include<algorithm>using namespace std;int main(){ int n,m; cin>>n>>m; int maxx=-1e9-1; for(int i=0;i<=n;i++){ ...

2018-05-16 21:35:33 579

原创 CF 527D

题目:题目给出公式 xi-xj>=wi+wj -> xi-wi>=xj+wj 现在有n<200000的线段,对每条线段输入两个数字a,b,线段左端是xi-wi,右端是xj+wj,求最多不重复覆盖的线段数量。题解:贪心裸题(我dp+线段树优化了很久最后放弃了还是贪心吧)#include<iostream>#include<algorithm>usi...

2018-05-16 21:11:56 160

原创 CF 527C

题目:每次都会水平或垂直地切割格子,求最大方块面积题解:学会使用Map,线段树也可以解这题,不过更慢且更麻烦#include<iostream>#include<map>#include<string>#include<algorithm>using namespace std;long long w,h,times;map<l...

2018-05-15 21:02:54 734

原创 CF 701C

题目:滑动队列题解:水题秒做系列。。#include<iostream>#include<string>#include<map>using namespace std;string str;map<char,int> mmm;int main(){ int len; int cnt=0; cin>&gt...

2018-05-04 19:45:51 142

原创 CF 712C

题目:将一个等边三角形变化成另一个等边三角形,每次改变一条边的边长,问在保证变化过程中三角形仍然是一个三角形的前提下,需要进行几次变换。题解:贪心。每次将最小的边长更新成最大的两条边长和-1即可。#include<iostream>#include<algorithm>using namespace std;int arr[3];int main(){ ...

2018-05-04 17:41:34 107

原创 CF 714C

题目:保研的材料整理得要死要死的,最近论文要完工了,实训应该也下来了,个人陈述和个人简历都要更新,好累啊。果然刷题是最能放松的方法之一了。这是题伪数据结构的水题。题解:补零,avl查询即可。#include<iostream>#include<string>#include<map>#include<algorithm>using names...

2018-05-03 21:36:21 266

原创 CF 743D

题目:给出一棵树,求大两棵子树权重和。题解:我今天心情本来是烦躁的,想刷两题水题解闷……结果卡题了!!!我现在的心情是暴躁的!!我们扯一会儿题解。首先dfs一遍把每个点的权重算出来肯定能想到。然后开始考虑如何维护“两个”子树的最大值。后来发现自己傻逼了只需要维护一个子树的最大值就行了。dp[i]表示i号节点的最大子树权重和。j表示i的孩子。dp[i]=max(所有dp[j],dp[i])然后WA了...

2018-04-26 17:31:43 213

原创 CF 743C

题目:给出一个数x,输出x,x+1,x*(x+1),当x==1的时候输出-1题解:按题目说的做#include<iostream>using namespace std;int main(){ int x; cin>>x; if(x==1) cout<<-1<<endl; else cout<<x&l...

2018-04-26 14:21:06 556

原创 CF 742C

题目:今天心情不好不写题目题解:仔细想想还是好生气啊!烦躁烦躁……偶数/2,奇数直接LCM。#include<iostream>#include<cstring>using namespace std;int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}int lcm(int ...

2018-04-26 13:56:54 183

原创 CF 742D

题目:背包题解:最近好烦啊……这题就是俩背包,一个大的一个小的,要么做大的要么做小的……心情不好……随手写写……#include<iostream>#include<vector>#include<algorithm>#include<cstring>using namespace std;struct Bag{ int weig...

2018-04-26 12:53:16 179

原创 CF 735E

题目:一棵树上有黑白两种颜色,一次染色能对相同颜色的区域取反,求几次染色可使得整棵树为同一种颜色。PS: 还是刷不动F,心累。题解:缩点后求树的直径/2 。不严谨证明:把一棵树立起来,不断地对树根染色,这样就会发现只需要考虑最长的树链。同理,如果对树链上某一点着色,一定次数的操作后会等价于对树根染色,贪心地选取,这个点应该是最长树链的中点。#include<iostream>#inc...

2018-04-16 23:37:39 2938

原创 CF 735D

题意:国际象棋规则,看黑方是否被将军题解:八个方向上把最近的点都记下来看看能不能凑合,有一个能凑合就可以输出YES,不然GG#include<iostream>#include<cmath>using namespace std;const long long INF=1e10+1;struct S{ char ch; long long x,y...

2018-04-16 21:51:24 790

原创 CF 734C

题目:太长不翻译。。现在题面都这么长的吗!!艰难地读完题后发现是水题 == 题解:枚举一个数组,二分另一个数组(毕竟题目都加粗非递减了)。记得long long 1ll<<63-1 . 1e18+1都会WA。#include<iostream>#include<algorithm>using namespace std;long long a[20100...

2018-04-16 19:12:23 130

原创 CF 732E

题目:有m条无向边,对他们设计方向,使得入度等于出度的顶点数最多,并输出边。题解:欧拉回路。在无向图中,度数等于2的顶点之间可以构成欧拉回路。度数为奇数的显然不行。所以答案就是度数为偶数的顶点的个数。对每个偶数的顶点走欧拉回路,记得删边。奇数的自生自灭吧。#include<iostream>#include<vector>#include<cstring>...

2018-04-16 17:30:53 197

原创 CF 732D

题目:n*m的图中有若干个水沟,想填平水沟使其只剩K个,问需要多少个砖。题解:爆搜啊不然还想咋地。#include<iostream>#include<vector>#include<algorithm>using namespace std;struct Point{ int x,y; Point(){} Point(int ...

2018-04-16 15:26:15 175

原创 CF 732C

题目:使前M个元素出现次数的最小值最大。题解:最终结果肯定是n/m。如果不够就把多余的给小的。如果还不够就把大的给小的。上课时刷的题,没认真想,代码瞎写的……#include<iostream>using namespace std;int n,m;int arr[101000];int band[101000];int main(){ cin>>n&...

2018-04-16 13:50:39 177

原创 CF 732D

题目:一堆考试,每个考试有复习时间,考试当天不能复习,考试有特定的时间,每门考试需要一个时间复习,求复习完并考试完的最小时间,否则输出-1 。题解:二分时间判断是否可行。每次选择每场考试的最后一个时间,从最小的最后时间开始依次判断是否能复习完。已经可以渐渐刷D了呢 :D   手感好像有所恢复诶明天挑战一下E?#include<iostream>#include<cstring&...

2018-04-16 00:23:22 212

原创 CF 732C

题目:给出吃早饭,午饭,晚饭的次数,求最少的没吃饭的次数。题解:这实在是没法写题解……就是这个意思。。难道是水题刷多了。。?#include<iostream>#include<algorithm>using namespace std;long long arr[5];int main(){ cin>>arr[0]>>arr[1...

2018-04-15 23:08:26 212

原创 CF 734C

题目:三种操作:1. 向队列加入一个数2. 给定一个数,删除队列中的所有的这个数3. 删除队列前N个元素(可能重复删除已删除的元素)题解:模拟。CF不卡常。卡常是因为你写挫了。#include<iostream>#include<stack>#include<queue>#include<cstdio>using namespace std;...

2018-04-15 22:27:35 119

原创 CF 735D

题目:将一个数字分解成若干个数字相加,求分解后的每一个数字的最大因子之和。题解:哥德巴赫猜想。注意特判N=2,N为素数,N-2为素数的情况。如果完全按照哥德巴赫猜想差分成N-3,3的话,N-3会再次分解,WA。#include<iostream>using namespace std;bool isPrime(int x){ if(x==1) return false;...

2018-04-14 18:52:27 223

原创 CF 735C

题目:求个递推式题解:递推式为dp[i]=dp[i-1]+dp[i-2], dp[1]=2, dp[2]=3#include<iostream>using namespace std;long long arr[10100];int main(){ arr[1]=2; arr[2]=3; for(int i=3;i<=10000;i++){ ...

2018-04-14 18:24:00 472

原创 CF 738D

题目:给出长为n<2*1e5的数组,给出区间个数a<n,每个区间长度b<n,求用多少个点可以使得至少有一个区间被覆盖。题解:在每个区间长度的最后一个位置放一个点,直到剩下可放置的区间数量小于b。#include<iostream>#include<string>#include<vector>using namespace std;i...

2018-04-14 17:32:01 2923

原创 CF 740C

题目:给出序列A,长度n<100000,m个子区间,m<100000,求每个子区间中没出现的最小整数的最大值。题解:动脑子想想会发现答案就是区间的最小长度。证明:1.每一个区间的mex值不可能大于其区间长度。2.每一个区间的mex值都一定可以达到其区间长度。循环打印数值即可。#include<iostream>#include<algorithm>#incl...

2018-04-13 11:36:28 147

原创 CF 777C

题意:给出一个n*m<100000的矩阵,给出k个查询,每个查询给出l,r两个数字,问在l行与r行之间是否存在一列拥有非递减序。题解:用vector存每个位置的起始位置。用数组存每行的起始位置的最小值。查询复杂度O(1)。#include<iostream>#include<vector>using namespace std;const int INF=1e...

2018-04-13 00:53:19 1182

原创 CF 703C

题意:人从原点沿Y轴移动,凸包沿X轴移动,问人不撞到凸包内并到达对岸的最小时间。题解:以凸包为参考系,人的移动等价于向右上方移动,如果移动直线与凸包无交点则可直接通过,否则需在第一条相交线段的左下角停留,重复这个过程,将时间累加,即可得到答案。#include<iostream>using namespace std;int n;double w,v,u;struct Po...

2018-04-12 23:39:19 188

原创 CF 731C

题目:输入长为n<200000的数组,以及m<200000的操作,每个操作将下标i,j的顶点连边,每个顶点都有颜色,问需要进行多少次对顶点的染色才可以让每条边的两顶点颜色相同。题解:构图,缩点,贪心求每个连通块最多的颜色数,答案是每个连通块拥有的顶点数量减去最多颜色数的和。贪心证明:一个块的颜色肯定要相等。易证……#include<iostream>#include&lt...

2018-04-12 17:46:58 677

原创 CF 631C

题目:对n<200000的数组,给出m种从1开始到r为止的升序或降序排序,m<200000,求最终输出序列题解:1. 不管前面排了多少次小区间,只要在后面排了一次大区间,结果只受最后一次排序影响。所以维护单调队列。2. 前面是大区间,后面是小区间,只有当排序方式不同时才需要重新排序。3. 第一次排序过后剩下的排序等价于翻转。好这样就有了O(N2)的算法,暴力一波看看数据水不水。……那再...

2018-04-12 15:00:21 663

原创 CF 797C

题意:给定字符串str,给定两种操作,求这两种操作下能够得到的字典序最小的字符串。题解:贪心。从小到大挑选,只要s中有,就把多余的给t,把要挑选的给u。当然再次之前要检查t的末尾是否小于要挑选的字符,如果是则压入u。本题其实是队列和栈的基本应用问题。#include<iostream>#include<stack>#include<queue>#inclu...

2018-04-12 00:49:53 712

原创 CF 798C

题目:给定序列,问将其gcd变成非1需要执行最少几次操作。题目给的操作:将相邻的a,b 变成 a-b, a+b 。题解:动脑子会发现俩奇数操作之后必然会获得因子2 。一奇数一偶数两次操作之后必然会得到因子2 。俩偶数不需要操作就可以得到因子2 。如果题目序列gcd不为1必然操作数就是0 。于是必定有解,只需要足够多的操作次数,就可以将所有的奇数变成偶数。这里有一个问题,为什么一定是将奇数变成偶数?...

2018-04-11 23:33:51 643

原创 CF 721C

题目:找到一条加权和少于T的路线,使其经过的点数尽可能多,输出点的数量,并打印路线。题解:脑抽卡题了。。。这是题图上dp。注意要点:为了满足dp条件,必须拓扑排序。在dp过程中利用prev记录路径。dp[i][j],为了到达i需要经过j个结点的最小花费。prev[i][j],最小花费的路线的前任结点。用longlong可能会炸空间。#include<iostream>#include...

2018-04-11 23:26:16 1039

原创 CF 849C

题目:找出最小合并映射。题解:构造题的Note一般都是坑,跟着他想你就输了。找规律:a = 0aa = 1aaa = 3aaaa = 10aaaaa = 15a的漏洞用b贴,b的漏洞用c贴,26个字母足够贴满了。#include<iostream>#include<string>using namespace std;int arr[20100];int mai...

2018-04-11 23:20:07 153

原创 POJ 2104

题目:n个数字,m个询问,每个询问给出(a,b,k),求区间[a,b]内的第k大数。题解:将线段树每个合并区间内的数据排序。第一次二分第k大数的大小,递归找到线段树的区间[a,b],在每个区间内二分查找比k小的数字的个数。从而找到最大的在区间内不超过k个数字比它小的的数字,将其+1就是正解。#include<iostream>#include<vector>#inclu...

2018-04-11 23:14:10 115

原创 商汤面试题C

题目:题解:这题看起来非常眼熟,还是折腾了一段时间,后来想起来应该是哪年的网络赛里做过原题。鸽巢原理。距离不超过2*1e5 ,只需要暴力枚举所有端点即可。复杂度min(N2, M)...

2018-04-11 23:07:09 1777

原创 商汤面试题B

题目:面试官是清华叉院搞过IOI的大佬,一开始理解错了题意,以为只要两两存在公共点就好了,结果是所有线段的投影都存在一个公共点的意思。这就很简单了,题目等价于能否找到一条直线通过所有线段,通过平移或旋转这条直线,是它到达临界点,这个临界点必然会经过其中两条线段的端点。所以答案就是枚举线段端点。复杂度O(N2)...

2018-04-11 23:04:41 1355

原创 商汤面试题A

死命找自己一年以前打ACM时的博客,登不上去了,心塞一地。昨天参加了商汤的面试,就新开个博客,做为新的人生阶段的总结吧,要重新开始刷题了。凭回忆写题目:N*M的二维数组,只有0、1值,找其中最大的全为1的矩形面积。题解:当时口胡的n*m*logn*logm的复杂度,二分的思路。然后想到可以用单调栈维护序列。暴力预处理数据,O(NM)的复杂度,做N次类似POJ2559的单调栈,一次单调栈O(N),可...

2018-04-11 22:58:52 1789

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除