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,并查集

—-不断更新 自己理解的 这一波可以学好久—-

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 阿里巴巴卖家虚假发货怎么办 淘宝捡到便宜但是卖家不发货怎么办 被工商局查到三无产品怎么办 淘宝买到三无产品电器怎么办 天猫商城被投诉怎么办 床板有虫子咬人怎么办 微信充电话费充错怎么办 联通话费充多了怎么办 qq钱包充值要验证码怎么办 在微信qq币充错账号怎么办 微信qq币充错了怎么办 魅蓝e玩游戏卡怎么办 魅蓝5玩游戏卡怎么办 微信qb充错号了怎么办 支付宝qb充错号了怎么办 手机上q币充错了怎么办 q币数值充错了怎么办 微信充值商户电话是假了怎么办 微信冲话费冲错了怎么办 淘宝退款不退邮费怎么办 淘金币买的退款怎么办 淘宝退款不退运费怎么办 拼多多不退运费怎么办 开发商不退团购服务费怎么办 支付宝话费充错了怎么办 电视版本低不支持投屏怎么办 绝地求生刺激战场不支持机型怎么办 手机不支持微信运动怎么办 淘宝虚拟商品买家退货退款怎么办 虚拟品申请啦退货退款怎么办 淘宝充值话费没到账怎么办 淘宝全球购买到假货怎么办 车跑路上没油了怎么办 摩托车跑路上没油了怎么办 话费充了不到帐怎么办 网上代充被骗了怎么办 天猫买东西没积分怎么办 购物时不要天猫积分怎么办 618没有天猫积分怎么办 话费充错了号码怎么办? 微信被骗充话费怎么办