2017年10月17日-ACM涉及知识需掌握
来源:互联网 发布:信用卡账单修改软件 编辑:程序博客网 时间:2024/06/04 18:14
2017 ACM/ICPC Asia Regional shenyang Online
部分解释:
6200:(dfs序)树状数组问题
6201:超级源点汇点(网络流),点权转化边权,spfa最长路径
6202:八面八轴魔方模拟,样例找关系写脚本
6205:暴力,贪心思想 模拟题水题
6203:LCA,DFS 树状数组
一:树状数组问题:
搞懂树状数组
树状数组 (模板)
//树状数组的一维和二维模板模板int lowbit(int x){ return x & (-x);}void modify(int x,int add)//一维{ while(x<=MAXN) { a[x]+=add; x+=lowbit(x); }}int get_sum(int x){ int ret=0; while(x!=0) { ret+=a[x]; x-=lowbit(x); } return ret;}void modify(int x,int y,int data)//二维{ for(int i=x;i<MAXN;i+=lowbit(i)) for(int j=y;j<MAXN;j+=lowbit(j)) a[i][j]+=data;}int get_sum(int x,int y){ int res=0; for(int i=x;i>0;i-=lowbit(i)) for(int j=y;j>0;j-=lowbit(j)) res+=a[i][j]; return res;}
二:超级源点汇点(网络流):
网络流本质上是为了解决一类取舍问题,这类取舍问题无法得知最优策略的模式(无法DP),因此通过构造一些带容量的路径表示原题目容量,模拟水流在这些容量之间的取舍,从而可以利用网络流来解决取舍问题。
【算法】网络流
网络流模板大全
//很复杂我不会
三:spfa最长路径:
(最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理与介绍
单源最短路 SPFA 算法模板
使用spfa算法来解决。
思想:用于求单源最短路径,可以适用于负边权的情况。spfa(Shortest Path Faster Algorithm)算法其实不是什么很难理解的算法,它只是bellman-ford的队列优化而已。
模板:
#include <iostream> #include <cstring> #include <queue> using namespace std; const int N = 105; const int INF = 99999999; int map[N][N], dist[N]; bool visit[N]; int n, m; void init() {//初始化 int i, j; for (i = 1; i < N; i++) { for (j = 1; j < N; j++) { if (i == j) { map[i][j] = 0; } else { map[i][j] = map[j][i] = INF; } } } } /** * SPFA算法. * 使用spfa算法来求单元最短路径 * 参数说明: * start:起点 */ void spfa(int start) { queue<int> Q; int i, now; memset(visit, false, sizeof(visit)); for (i = 1; i <= n; i++){ dist[i] = INF; } dist[start] = 0; Q.push(start); visit[start] = true; while (!Q.empty()) { now = Q.front(); Q.pop(); visit[now] = false; for (i = 1; i <= n; i++) { if (dist[i] > dist[now] + map[now][i]) { dist[i] = dist[now] + map[now][i]; if (visit[i] == 0) { Q.push(i); visit[i] = true; } } } } }
四:LCA(最近公共祖先):
LCA最近公共祖先 在线算法和离线算法 模板
最近公共祖先的基本求解思路,用到了邻接表,dfs,并查集
—-不断更新 自己理解的 这一波可以学好久—-
阅读全文
2 0
- 2017年10月17日-ACM涉及知识需掌握
- 前端面试知识整理-2017年7月10日
- 2017年10月17日-Test
- 2017年10月17日笔记
- ACM集训日记-8月17日
- ACM集训日记-8月10日
- ACM需要掌握的知识
- ACM要求掌握的知识
- 10月17日
- 2017年6月4日大连海事大学acm校赛 后记
- 2017年8月17日10:16:16
- 2017年8月17日10:29:03
- 2017年10月17日 第八次总结
- ACM训练日记—8月17日
- ACM周末总结—9月17日
- ACM-9月17日周日周末训练心得
- ACM训练日记—12月17日
- 13年7月7日 ACM 第一天培训
- Codeforces Round #441 (Div. 2, by Moscow Team Olympiad)
- Codeforces 876 B Divisiblity of Differences
- 笔试题记录
- 557. Reverse Words in a String III
- hdu1219 AC Me
- 2017年10月17日-ACM涉及知识需掌握
- SpringBoot自定义静态资源映射方法
- swift脚本编程:一键生成AppIcon
- idea intellij main方法 [public static void main(String[] args) 快速生成]
- 字符串的大小比较
- 【UNP学习笔记】一个简单的服务器/客户端程序
- Spring boot 使用 Redis 缓存
- 12,mac phpstorm xdebug
- Unity3D基于陀螺仪实现VR相机功能