csps考前的一些总结(然而可能并没有用)
记录考前的一些复习和总结,如果没有特殊情况不再写新的题解了
图论:
一.最短路:
1.spfa算法中的vis数组记录的是有没有入队,防止多次入队,通过松弛操作来达到最优解
2.dijkstra算法的vis是记录是否出队,也就是说根据贪心的过程,我们在优先队列里可能会多次放一个点
但是我们只需要用距离最小的点来更新,其他入队的相同点不能更新来保证时间复杂度
3.对于一些特殊的题需要求到某个点的第d小路径,我们只能用dijkstra+堆来维护
因为我们对于$x->to$的更新必须保证x已经更新为最优解,然后注意vis数组需要用
对于每个点用堆储存他的d+1小值,更新完后的堆首就是答案
二.欧拉路
1.判定细节:对于欧拉路,有向图中出度-入度==1\-1的点各有一个,其余入度==出度
无向图中度数为奇的点有两个,其余为偶
对于欧拉回路,有向图所有点入度==出度
无向图度数均为偶
2.实现:可以用手工栈+当前弧优化,
st[++top]=qidian;
while(top>0){
int x=st[top];int i=head[x];
while(i&&vis[i])i=e[i].n;
if(i){
++top;
int to=e[i].to;stb[top]=id[i];vis[i]=1;
if(T==1){vis[i^1]=1;}
head[x]=e[i].n;
st[top]=to;
}
else{
ans[++ans[0]]=stb[top];
top--;
}
}
数据结构:
一.单调栈\队列:
1.常用于O(n)判断一个点的前趋最大和最小值。
2.在单调队列中记录last数组可以记录在栈中某个点到他的前面一个点的相同值的个数。
3.单队判重可以结合hash表。见于csps测试102。
4.单队用于查询两点大于等于区间最大值的点对个数,见于csps测试102。
基础算法:
一.二分:
一些问题模型:
一.已知a,b序列,a序列可以改变位置,求a>b的个数最大值
解法:1.如果只是问答案,可以用各种贪心,或线段树水过
2.如果输出字典序最大、小序列,考虑线段树套二分,每一位的两个区间满足单调性,可以二分并在线段树中log维护信息,复杂度$nlog(n)^2$。
二.求序列$a_{i}-a_{j}$,满足$i<j$并且$a_{i}*a_{j}$为完全平方数的个数
正解:$n*\sqrt[3]{n}$
考虑用平方因子去筛数字,然后用假设剩下的为$p*p*x$
那么$x< \sqrt[3]{n} $,一定被筛掉,或者$p==1$,那么x就是若干质数的
乘积,然后就可以直接筛
三.求$m$个边,其中$u-w-v$不是三元环且相连,求$w_{u}*w_{v}$的和,最大值
求和:比较显然。因为只有m个边,那么只须对于每个点作为$w$,加上三个点的贡献,再减去三元环的贡献
求极值:证明$m$个点最大有$m*\sqrt{m}$个三元环。
假设我们将点按他的度数排序,每个点去匹配比他度数大的点。然后对于当前点v假如当前度数大于$\sqrt{m}$
那么只会有$sqrt_{m}$节点被扫到,如果小于,那么也是小于根号。
然后将每个点的相连的点按val排序,然后枚举每个u,没找到一个v就break,
这题暴力90?????
四:求d维网络中给定几个坏点无法经过,求原点到终点的路径数。
考虑容斥。
设$f_{i}$表示从原点到i的不经过坏点的路径数,根据维数的信息可以建出转移的拓扑图来
然后每次枚举每个转移点作为坏路径的第一个坏点,$f_{i}=f_{i}-\sum_{j}f_{j}*cal(j,i)$.
考试的注意事项:
1.考试时如果T120分钟内没有思路就赶紧过或者打上暴力,不要浪费过多时间
2.多测一定要清空,尤其是图论题,一定要把存边的邻接表或vector清空
3.一定要读清题后再去思考,最好先模一遍样例
4.取模看清模数!!!!!!!
5.要测极限数据,1LL<<63!!!
csps考前的一些总结(然而可能并没有用)的更多相关文章
- CSP-S考前救急(考试前还是别复习了,事实证明复习了也没考到...
“不要为明天而忧虑,因为明天自有明天的忧虑:一天的难处一天当就够了.” 念念不忘,必有回响. 考试结束前15分钟停止写代码.然后按照以下顺序进行检查: -检查文件名是否写错-检查是否打开文件输入输出 ...
- 2019.11.9 csp-s 考前模拟
2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...
- NOIP/CSP-S 考前注意事项
NOIP/CSP-S 考前注意事项 实际操作与代码注意事项 基本内容 可以使用 #include <bits/stdc++.h>!!!从来都是可以的!!!不需要背诵一大串头文件,更不要从本 ...
- CSP-S考前各种idea题解乱堆
快要考试了我还是这么菜. 已经没有心思维护我的博客了.开一篇博文吧.可能会记得很乱. 这也许是我OI生涯的最后一篇博文了?? 肯定很长很长. 不可能的.谁知道什么时候我心态恢复就把上面两句话删掉开始在 ...
- 2019 qbxt CSP-S考前冲刺班总结
似乎--也没有太多好说的. 但这是最后一次培训,因此还是应该写点什么的. 记得状态最好的一次培训,是高一的第一次培训.那次是总共的第二次培训.第一次去的时候什么也不会,跟的非常吃力,每天都在疯 ...
- csp-s 考前刷题记录
洛谷 P2615 神奇的幻方 洛谷 P2678 跳石头 洛谷 P1226 [模板]快速幂||取余运算 洛谷 P2661 信息传递 LOJ P10147 石子合并 LOJ P10148 能量项链 LOJ ...
- it's over | 2019 CSP-S 第二轮认证(超长预警)
也许应该从Day -1(2019年11月14日周四)开始说起? 卑微的我们在学长的怂恿下终于...停课了(哇我们太菜了,只停一天半的课有个卵用 早读后我带头去办公室请假,飞哥很大方地答应了,同时免了我 ...
- it's over | 2019 CSP-S 第一轮认证
不知道自己有没有凉,毕竟我们省这么弱(据说有的省80都悬... 其实这几天对初赛基本没什么感觉,可能是没给自己多大压力吧,倒是班上的一群同学似乎比我们还着急,我们的数学课代表兼数竞大佬特意给我画了吉祥 ...
- CSP-S 复赛之前的任务计划
一. 最短路算法复习 ★1.Dijkstra: 2. SPFA: 3. Floyd: 二. DP 复习 ★1.背包问题: 2.区间 DP: 3.状压 DP: 三. 数据结构 ★1. 线段树: 2. 树 ...
随机推荐
- 看雪加密解密第一个traceme程序破解
工具:ollydbg(吾爱破解2.10版) 工具设置:因为traceme是一个win32图形用户程序,所以其程序入口点在WinMain()函数处,设置ollydbg的调试设置的事件选项,选中在WinM ...
- CRM系统自动化业务流程的好处
CRM系统的自动化可以简单化企业大部分工作,而且覆盖销售,市场,服务和财务部门,使团队有大量时间花在业务流程上. CRM系统自动化的建立是为了更好地使工作更为简单且便于管理,自动化释放出来员工的时间, ...
- [笔记] 《我的第一本c++书》
函数 优秀函数的五个要点 函数的返回值:直接返回和间接返回(指针) 在函数的入口处对参数有效性进行检验:if语句,断言(assert) 如果函数有返回值,不可返回一个指向函数体内局部对象的指针或引用 ...
- [Windows] 屏幕截图 - FastStone Capture(FSCapture) v9.4 飞扬时空汉化绿色版(官方地址) 【清晰好用 已验证】
[Windows] 屏幕截图 - FastStone Capture(FSCapture) v9.4 飞扬时空汉化绿色版(官方地址) [复制链接] 愤怒の葡萄 电梯直达 楼主 发表于 2 ...
- ln -s 新目录(最后一个目录新建images) 旧目录(删除最后的images目录)
sudo yum install libvirt virt-install qemu-kvm 默认安装会启用一个NAT模式的bridgevirbr0 启动激活libvirtd服务 systemctl ...
- 诸神之眼 - Nmap 教程
*注: www.heihei.work 为本人测试网站,可由 官方测试网站 scanme.nmap.org代替. NO.11.扫描端口开放的服务nmap -T4 -A -v www.heiehi.wo ...
- who -b
~]# who -b 系统引导 2020-05-03 19:57[root@localhost ~]# who -r 运行级别 5 2020-05-03 19:58
- 如何在我的EC2实例状态更改时获取自定义电子邮件通知
具体详情,请参见: https://amazonaws-china.com/cn/premiumsupport/knowledge-center/ec2-email-instance-state-ch ...
- 010.kubernets的调度系统之daemonset
daemonset简单操作使用 Deployment 是 Kubernetes 中用于处理无状态服务的资源,而 StatefulSet 是用于支持有状态服务的资源,这两种不同的资源从状态的角度对服务进 ...
- 分布式存储ceph---部署ceph(2)
一.部署准备 准备5台机器(linux系统为centos7.6版本),当然也可以至少3台机器并充当部署节点和客户端,可以与ceph节点共用: 1台部署节点(配一块硬盘,运行ceph-depoly) 3 ...