- 博客(196)
- 资源 (1)
- 收藏
- 关注
原创 夏令营和预推免学校整理
整理了一下自己五个月以来干了什么个人情况学校:哈尔滨某211专业:计算机科学与技术排名:9/280四级:641六级:497科研项目:无竞赛:ICPC铜×3PS:本人头铁,报的全都是CS,无软院和网安夏令营情况学校备注中国科学技术大学未入营貌似只有专业第一第二能入营中南大学未入营随便报的,不入无所谓了同济大学未入营太难了?华东师范大学优营(学硕)CS没软院好,当时冲动了北京航空航天大学递补第四(专硕)今年每个老师只有一
2021-09-14 10:37:07
824
4
原创 2021年哈尔滨工业大学(深圳)计算机学院预推免面试经历
2021.9.11其实对于哈工深,我这种末流211学生根本不敢想的。。但是还是试了试,毕竟学姐盛情邀请。延迟了半小时,等了一上午,突然感觉背后一凉,终于轮到我了1.英文自我介绍+中文PPT老师:开始你的自我介绍吧,五分钟哦。这时候我打开屏幕共享,直接开始讲PPT,结果不知道是因为CherryMX3.0S粉色RGB红轴(狗头)键盘坏了还是笔记本坏了,他一直翻页。然后我的英语个人介绍在夹杂着sorry声中度过了,紧张死了。I’m ChenXi ,sorry,I’m from…university s
2021-09-11 22:45:54
3929
9
原创 2021年华师大计算机学院夏令营面试经历
7.14感觉还可以,比北航的简单多了1.介绍老师:用英文介绍一下你的家乡,以及你的学校。我没有准备到,所以有点慌乱。就这样过去了。2.翻译老师:读一下第一段并翻译一下。我读完之后很懵,关键词也没见过,所以翻译的特别差,并且浪费了很多时间。3.专业课第一题:mac是电脑中哪个部分的地址,能不能修改?还好前几天还搜过如何改mac地址,印象特别深刻,但我只答出来一半。。第二题:折半查找一个2的k次长度的序列,平均查找次数是多少?老师让我着重解释一下第二题,也都OK。感觉都不难。4.竞赛老师:
2021-07-14 19:44:06
2791
6
原创 2021年北航计算机学院夏令营面试经历
我就不应该参加面试的刚面试完10分钟,怀着无比平静的心情写下这个博客1.政治老师:1-10个政治题,你自己报个数吧。我:5。(内心OS:不知道选啥选中间)上来给我念了个十九大主要矛盾转变,让我结合实际分析一下。我:我们现在这个人民矛盾还是非常幸福的…不是,这个矛盾还是非常不平衡不充分的…这个不平衡不矛盾的…不平衡不充分的矛盾…不是,这个不平衡不充分的发展很影响我们的日常生活质量…就像我的生活…虽然在追求美好生活…但是受到了影响…真的太紧张了。建议大家深呼吸。我深呼吸了20次,大家可以多做一点,50次
2021-07-13 18:58:55
3947
20
原创 概率论复习笔记
第一章 随机事件及其概率频率稳定值⇒\Rightarrow⇒引入”概率“的概念一、等可能概型(古典概型)若随机试验EEE满足以下条件:(1)样本空间SSS只有有限个样本点,即S={e1,e2,...en}S=\{e_1,e_2,...e_n\}S={e1,e2,...en};(2)每个样本点出现的可能性相同,即对基本事件{ei}(i=1,2,..n)\{e_i\}(i=1,2,..n){ei}(i=1,2,..n)而言,有P({e1})=P({e2})=...P({en})P(\{e
2021-06-07 17:56:10
853
原创 2016ACM/ICPC亚洲区大连站-补题
2016ACM/ICPC亚洲区大连站-补题5971-Wrestling Match题目隐藏条件:除去已经知道的好人和坏人,如果剩余的人恰好被分成两组,即便不知道这两组哪组是好人,也是输出YES做法:dfs染色,如果没有起点,需要随意取一个起点并随机赋予颜色(这个起点只能取一个)代码:const int maxn=2e3+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;int n,m,x,y,u,v,col[maxn],flag;vector&l
2021-03-27 17:33:25
128639
原创 CodeForces - 1501D - Two chandeliers 二分
CodeForces - 1501D - Two chandeliers 二分题意:如果两个数组的花颜色不一样,老板就会生气,问多少天后老板会生气k次。分析:因为数组aaa的每个数字互不相同,数组bbb的每个数字也互不相同,换句话说,数组aaa和数组bbb相同的对数不超过max(n,m)max(n,m)max(n,m),可以存起来做法:假设位置iii和位置jjj的数字相同。即存在x,yx,yx,y,使得x∗n+i=y∗m+jx*n+i=y*m+jx∗n+i=y∗m+j移项后得x∗n−y∗m
2021-03-14 14:04:04
263
原创 CodeForces - 1490
CodeForces - 1490A - Dense Arrayconst int maxn=2e6+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;int t,n,a[maxn];int main(){ scanf("%d",&t); while(t--) { int ans=0; scanf("%d",&n); rep(i,1,n)scanf("%d",&am
2021-02-26 15:06:46
293
原创 Python基础操作
Python基础操作害怕忘记非正经学习一晚速成一、输入#一个字符串a=input()#输入一个数字a=int(input())#一行输入多个数字m,n=input("请输入多个值:").split()二、输出#输出一个数字print(3)#空格隔开print(3,5)#不换行输出print(3,end=“”)#格式化输出print("{} {}".format("hello","world"))#数字格式化输出print("{:.2f}".f
2021-01-12 01:10:54
152
原创 CodeForces - 1462
CodeForces - 1462A - Favorite SequenceSB题const int maxn=2e6+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;int a[maxn],t,n;int main(){ scanf("%d",&t); while(t--) { scanf("%d",&n); rep(i,1,n)scanf("%d",&a[i]);
2020-12-19 16:03:19
249
1
原创 CodeForces - 1461
CodeForces - 1461A - String Generation一直输出abc串const int maxn=2e6+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;int t,n,k;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); rep(i,1,n) {
2020-12-17 19:18:35
153
原创 CodeForces - 1457
CodeForces - 1457A - Prison Break特判矩形四个顶点const int maxn=2e6+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;ll t,n,m,r,c;int main(){ scanf("%lld",&t); while(t--) { scanf("%lld%lld%lld%lld",&n,&m,&r,&c);
2020-11-30 17:12:51
259
原创 CodeForces - 1454E - Number of Simple Paths 思维
CodeForces - 1454E - Number of Simple Paths 思维题意:给出一个n个顶点n条无向边的连通图,求出不重复的所有路径数量。分析:对于一棵树而言(含有n-1条无向边),所有路径的数量就等于所有顶点两两配对的数量的二分之一(因为在无向图中x到y和y到x其实是同一条)。即ans=ans=ans=n(n−1)2{n(n-1)}\over 22n(n−1)。对于一个环而言(含有n条无向边),所有路径的数量等于所有顶点两两配对的数量(因为环的特殊性,所以x到y有两种不同
2020-11-25 14:35:02
398
原创 2019CCPC 秦皇岛 E.Escape
2019CCPC 秦皇岛 E.Escape题目:http://acm.hdu.edu.cn/showproblem.php?pid=6735分析:对于每一个点,接纳的方向永远只有一个如果两个点到达同一个点,唯一的可能性是他们从起始点到该点的路径完全一致,但是根据题意,起始点是各不相同的,所以任何一个点都不会被重复经过。每一个点被经过的可能性只可能是以下两种没有转弯装置:水平经过或者竖直经过有转弯装置:从水平到竖直或从竖直到水平建图:将每一个点拆分成两个方向:竖直方向col[i][j]c
2020-10-23 19:02:33
293
原创 CodeForces - 1427C - The Hard Work of Paparazzi dp
CodeForces - 1427C - The Hard Work of Paparazzi dp题意:给出n个点(xi,yi)(x_i,y_i)(xi,yi),如果主人公在tit_iti在这个点上,就可以拍照,从一个点到另一个点的花费时间是两点的哈密顿距离。想不出来 又是抄的题解dp状态:dp[i]dp[i]dp[i]表示[1,i][1,i][1,i]个点最多可以拍多少照片初始化:dp[0]=0,dp[i]=dp[0]=0,dp[i]=dp[0]=0,dp[i]=负无穷思路:(假设i&l
2020-10-14 21:33:05
290
2
原创 CodeForces - 1422D - Returning Home 建图
CodeForces - 1422D - Returning Home 建图题意:给出起点和终点和m个跳跃点,跳跃点的定义是:只要主人公当前位置(x,y)(x,y)(x,y)的横坐标或纵坐标最少一个与跳跃点坐标(xi,yi)(x_i,y_i)(xi,yi)的相同就可以直接到跳跃点上。想不出来 又是抄的题解思路:由于在x坐标下,可以随意到达该x坐标下的任何的跳跃点,花费为0,所以将x坐标拆成m个点,只有跳到不同的x坐标下才会产生花费。同理y坐标。拆顶点:规定起点为000,终点为3m+13m+13m
2020-10-10 17:06:59
205
原创 CodeForces - 1422C - Bargain 枚举贡献
CodeForces - 1422C - Bargain 枚举贡献题意:给出长度为n的字符串,删除其中任意长度的连续子串,将所有可能的情况的数字加起来取模做法:假设序列是12354,假设2不被删去那么可能的情况有以下两种:删除位置[3,5]中的连续子串这种情况下,2的贡献是不同的,分别是:删除长度为3的子串2×100×12×10^0×12×100×1删除长度为2的子串:2×101×22×10^1×22×101×2删除长度为1的子串:2×102×32×10^2×32×102×3ans1=∑
2020-10-05 21:03:53
1429
8
原创 CodeForces - 1408D - Searchlights 思维/贪心
CodeForces - 1408D - Searchlights 思维题意:给出n个强盗坐标(ai,bi)(a_i,b_i)(ai,bi),m个探照灯坐标(cj,dj)(c_j,d_j)(cj,dj),每一次可以将所有ai+1a_i+1ai+1或者bi+1b_i+1bi+1,对于1≤i≤n,1≤j≤m1\leq i\leq n,1\leq j\leq m1≤i≤n,1≤j≤m,均满足ai≤cj&&bi≤dja_i\leq c_j\&\&b_i\leq d_ja
2020-10-04 19:54:42
253
原创 Cow Acrobats Page48 贪心
Cow Acrobats Page48 贪心邻项交换的基础题,都快忘了,写篇博客加深一下印象假设现在的排列顺序是1~n,且最大的risk出现在位置i处那么MaxRisk1=∑j=1i−2p[j].w+p[i−1].w−p[i].sMaxRisk_1=\sum_{j=1}^{i-2}p[j].w+p[i-1].w-p[i].sMaxRisk1=∑j=1i−2p[j].w+p[i−1].w−p[i].s假设交换第i项和第i-1项,MaxRiskMaxRiskMaxRisk变大,即变得“不优”此
2020-10-04 17:14:32
178
原创 骑士放置 Page435 最大独立集
骑士放置 Page435 最大独立集棋盘问题首先黑白染色马的哈密顿移动距离是3,必然是从白走到黑或者从黑走到白这题折腾了俩小时,就因为递归那里懒得写int,直接用了个全局变量,根本检查不出来,人傻了代码:const int maxn=2e4+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;bool mark[120][120],vis[maxn];int linker[maxn],n,m,t,x,y;int xx[8]={1,1,-1,-1
2020-10-02 21:50:51
2069
3
原创 CodeForces - 1426
CodeForces - 1426A - Floor Number小模拟int t,n,x;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&x); int left=1,right=2,id=1; while(1) { if (left<=n&&n<=right)
2020-10-01 13:09:10
330
原创 Ants Page432 二分图最小权匹配
Ants Page432 二分图最小权匹配这个问题居然转换为了求一个二分图最大权匹配的问题,完全想不到当两个线段相交的时候,必然有四个顶点,根据三角形的性质可以将这两条线段重新连起来,这个连法可以达到相同的连接状态,并且两线段之和比原先小了。具体证明在蓝书上,就不说了实在是太神奇了注意最后要做一个小小的转换,他要输出的是左边匹配的情况,而linker[i]表示的是右边的匹配情况。别忘了把边权取负代码:const int maxn=2e3+7;const double INF=1e9;c
2020-09-30 20:41:03
270
原创 导弹防御塔 Page428 二分图多重匹配
导弹防御塔 Page428 二分图多重匹配二分时间对于每一个导弹,在限定的时间内可以打出多少弹药是固定的,根据距离可以判断出每一枚子弹是否能够打中敌人,然后连线我是把左边防御塔,右边敌人,也可以变成左边敌人,右边防御塔,由于是拆开来做的多重匹配,所以原理是一样的需要注意这边的T1是秒数,一开始看成了分钟怎么做都错题目范围给的不是很明确,所以开数组的时候开了很大,这时候就不能用memset了,会超时代码:const int maxn=2e6+7;const int INF=0x3f3f3f
2020-09-30 18:54:11
198
原创 棋盘覆盖 Page426 二分图最大匹配
棋盘覆盖 Page426 二分图最大匹配对于一个点(i,j),假设在这个点放置一个骨牌,那么显然最多只能放置一个,这是“1要素”将(i,j)和(i,j+1)、(i,j)和(i+1,j)连边,表示两个不同位置放置骨牌,但是其余位置均不与(i,j)相连,基于骨牌的身材为2*1,这是显然的,这是“0要素”直接用二分图最大匹配解最多放置的数量代码:const int maxn=1e2+7;const int INF=0x3f3f3f3f;const ll INFF=1e18;int mapp[m
2020-09-30 12:59:21
145
原创 关押罪犯 Page423 并查集/二分图判定
关押罪犯 Page423 并查集/二分图判定一、并查集思路:贪心思想,将怒气值从大到小排序,尽可能把怒气值大的放在不同的监狱,即不同的集合内,一共两个监狱,放在不同的监狱不能表示为unite(a,b),但是可以表示为unite(a,b+n),unite(a+n,b)表示a和b的敌人在一个监狱中,b和a的敌人在一个监狱中,当两人属于同一监狱时直接输出代码:int fa[maxn],n,m;struct node{ int x,y,z;}p[maxn];bool operator<
2020-09-30 10:49:36
189
原创 CodeForces - 1417
CodeForces - 1417A - Copy-paste优先把最小的加给别人再用次小的加给最小的猜的..int t,n,k,a[maxn];int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); rep(i,1,n)scanf("%d",&a[i]); sort(a+1,a+1+n); int ans
2020-09-28 16:59:27
325
1
原创 CodeForces - 1418D. Trash Problem 线段树+离散化/set维护
CodeForces - 1418D. Trash Problem 线段树+离散化/set维护不难想到,最后的ans=max{a[i]}−min{a[i]}−max{a[i]−a[i−1]}ans=max\{a[i]\}-min\{a[i]\}-max\{a[i]-a[i-1]\}ans=max{a[i]}−min{a[i]}−max{a[i]−a[i−1]}一、线段树做法维护区间的最大值,最小值,和区间最大的相邻差值需要用到离线,将所有的点都放入数组才能离散化,然后构造线段树的过程中,记录下哪些点
2020-09-24 11:41:22
212
原创 传纸条 Page270 线性dp
传纸条 Page270 线性dp1.如果把来去分开做的话,还得判断是否有重复经过2.从顶点开始假设有两个人在同步走,如果走到同一个点A,想了好久为什么算经过一次,而不是算经过0次。因为能走到那个地方,就必然存在另一种走法,使得一个玩家经过该点A,而另一个玩家走到B点(AB距离出发点的距离相等),假设最坏情况是玩家走到B点的路上权值都是0,这时候恰巧算一次,但是并不是意味着无法到达这个点,所以取0次是不对的。代码:const int maxn=50+7;const int INF=1e9;cons
2020-09-22 20:04:20
138
原创 Mobile Service Page269 线性dp
Mobile Service Page269 线性dp1.如果直接做的话是dp[i][pos1][pos2][pos3]dp[i][pos1][pos2][pos3]dp[i][pos1][pos2][pos3],显然超时,将冗余信息除掉后,降了个维度就可以做了。(根本想不到)2.要注意,同一个点不能两个人同时到达,所以要加个判断语句。代码:int dp[1007][maxn][maxn],cost[maxn][maxn],n,m,x[1007];int main(){ scanf("%
2020-09-22 17:40:25
137
原创 Making the Grade Page267 线性dp
Making the Grade Page267 线性dpdp[i]dp[i]dp[i]表示处理完前i个的构造,且bi=aib_i=a_ibi=ai(对于非递减的B序列)dp[i]=min{dp[j]+cost(i,j)∣1≤j≤i,a[j]≤a[i]}dp[i]=min\{dp[j]+cost(i,j)|1\leq j\leq i,a[j]\leq a[i]\}dp[i]=min{dp[j]+cost(i,j)∣1≤j≤i,a[j]≤a[i]}其中,cost(i,j)cost(i,j)cost
2020-09-22 17:36:53
111
原创 LCIS Page266 线性dp
LCIS Page266 线性dpLIS复习int dp[maxn],n,a[maxn],ans=0;int main(){ scanf("%d",&n); rep(i,1,n)scanf("%d",&a[i]),dp[i]=1; rep(i,1,n)rep(j,1,i-1)if (a[i]>a[j])dp[i]=max(dp[i],dp[j]+1); rep(i,1,n)ans=max(ans,dp[i]); W(ans); r
2020-09-22 17:18:47
99
原创 Mr. Young‘s Picture Permutations Page265 线性dp
Mr. Young’s Picture Permutations Page265 线性dp1.一开始直接建了一个30^5的dp数组,爆空间了,然后用map+哈希处理一下,题解用的是dp[maxn][maxn/2][maxn/3][maxn/4][maxn/5],因为队伍的人数限制a1>=a2>=a3>=a4>=a5a_1>=a_2>=a_3>=a_4>=a_5a1>=a2>=a3>=a4>=a5,且a1+a2+a3+a4+a
2020-09-22 17:02:22
151
原创 CodeForces - 1409F. Subsequences of Length Two dp
CodeForces - 1409F. Subsequences of Length Two dp题意:给出一个s串和t串,可以修改s串中的字母最多k次,问最后s中最多存在子序列t多少个dp状态:dp[i][j][k]dp[i][j][k]dp[i][j][k]表示在位置[1,i][1,i][1,i]上,修改了j次,共出现t[1]字符k次如果t[1]=t[2],就需要特判,直接把所有能替换的全部替换为t[1],如果用上述dp的话会少情况。代码:int n,x,dp[maxn][maxn][maxn
2020-09-22 16:57:17
177
原创 CodeForces - 1409
CodeForces - 1409A - Yet Another Two Integers Problem一直取10,剩余的一次完成ll t,a,b;int main(){ scanf("%lld",&t); while(t--) { scanf("%lld%lld",&a,&b); printf("%lld\n",(max(a,b)-min(a,b))%10==0?(max(a,b)-min(a,b))/10:(m
2020-09-18 15:41:57
308
原创 CodeForces - 1391D - 505 dp
CodeForces - 1391D - 505 dp题意:给一个矩形,其偶数的子正方形中1的个数必须为奇数思路:由于长为2的正方形中1的个数为奇数,所以4个长为2拼起来的长度为4的正方形中1的个数一定为偶数,所以当n>=4时,情况必然不存在;当n=1时,输出0;问题转化为求n=2和n=3时的两种情况做法:当n=2时,枚举第一列的状态,如果第一列中有1个1,那么第二列要么全0要么全1;如果第一列中全1或全0,则第二列一定是1个1。就两种状态,暴力比大小当n=3时,第i+1列的一种状态对应第
2020-09-17 12:17:10
192
原创 CodeForces - 1395D - Boboniu Chats with Du 贪心
CodeForces - 1395D - Boboniu Chats with Du 贪心题意:如果ai>ma_i>mai>m,并且当天可以说话,则接下来ddd天不能说话。其余所有情况都能说话,计算能说话的∑ai\sum a_i∑ai的最大值思路:大于mmm的如果取,则肯定取当前最大的,并且是从最后一个位置nnn开始取,每隔ddd个取一个如何去利用前缀和:暴力枚举取xxx个大于mmm的,那么会消耗(x−1)(d+1)+1(x-1)(d+1)+1(x−1)(d+1)+1天,剩余的天
2020-08-14 12:17:01
220
原创 CodeForces - 1393
CodeForces - 1393A - Rainbow Dash, Fluttershy and Chess Coloring手动算几个int t,n;int main(){ scanf("%d",&t); while(t--) { scanf("%d",&n); W(n/2+1); }}B - Applejack and Storages统计当前边长的个数,由于情况很少,全部枚举出来int n,
2020-08-12 22:08:58
165
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人