首页 > 其他分享 >泛做题记录

泛做题记录

时间:2025-01-10 21:58:00浏览次数:1  
标签:head ver 记录 int tot edge que 做题

  • 伊基的故事 I - 道路重建
    • 网络流题,在跑完 dinic 后,在残量网络上找 \(f(u,v)=0\),满足存在 \(s\rightarrow u,v \rightarrow t\) 的边。代码
  • [USACO05FEB] Secret Milking Machine G
    • 网络流题,明显二分答案。网络可以直接建反向边,因为流两次相当于没流。

      code
      const int N = 205;
      const int M = 8e4 + 5;
      const int inf = 2147483647;
      
      int head[N], ver[M], _edge[M], Next[M], tot = 1;
      int n, p, T, d[N], now[N], s, t;
      queue<int> que;
      int edge[M];
      
      void add(int u, int v, int w) {
        ver[++tot] = v, _edge[tot] = w;
        Next[tot] = head[u], head[u] = tot;
      }
      
      bool bfs() {
        memset(d, 0, sizeof d);
        while (que.size()) que.pop();
        d[s] = 1, que.push(s), now[s] = head[s];
      
        while (que.size()) {
          int u = que.front(); que.pop();
      
          for (int i = head[u]; i; i = Next[i]) {
            int v = ver[i], w = edge[i];
            if (w && !d[v]) {
              d[v] = d[u] + 1;
              now[v] = head[v];
              if (v == t) return 1;
              que.push(v);
            }
          }
        }
      
        return 0;
      }
      
      int dfs(int u, int f) {
        if (u == t || !f) return f;
        int res = 0;
      
        for (int &i = now[u]; i; i = Next[i]) {
          if (edge[i] && d[ver[i]] == d[u] + 1) {
            int k = dfs(ver[i], min(f, edge[i]));
            if (!k) d[ver[i]] = 0;
            edge[i] -= k, edge[i ^ 1] += k;
            f -= k, res += k;
            if (f <= 0) break;
          }
        }
      
        return res;
      }
      
      int dinic() {
        int res = 0, f;
        while (bfs()) while (f = dfs(s, inf)) res += f;
        return res;
      }
      
      bool check(int val) {
        LF(i, 2, tot) edge[i] = (_edge[i] <= val ? 1 : 0);
        if (dinic() >= T) return 1;
        return 0;
      }
      
      int main() {
        cin >> n >> p >> T;
        s = 1, t = n;
      
        LF(i, 1, p) {
          int u, v, w; cin >> u >> v >> w;
          add(u, v, w);
          add(v, u, w);
        }
      
        int l = 1, r = 1e6;
      
        while (l < r) {
          int mid = (l + r) >> 1;
          if (check(mid)) r = mid;
          else l = mid + 1;
        }
      
        cout << l;
        return 0;
      }
      

标签:head,ver,记录,int,tot,edge,que,做题
From: https://www.cnblogs.com/FRZ29/p/18664762

相关文章

  • 2025.01.10 杂题记录
    2025.01.10杂题记录CF1998E2这题是求能否吃完,而不是最多吃多少个。首先如果\(x=n\),那么是经典问题,每次往左右二分一个位置扩展,每次扩展两次和都会翻倍,复杂度就是\(O(n\logn\logV)\)。我们考虑每个起始点对每个\(f(i)\)的贡献。我们每次应当优先往左扩展,如果扩展不了,往......
  • [CF1019C] Sergey's problem 做题记录
    小清新构造题,会就会,不会就不会。link注意到走两步很特殊,尝试从走一步拼出来,考虑归纳法:随便选择一个点\(x\),然后删掉\(x\)和所有\(y\)满足存在边\((x,y)\)。设剩下的图的答案集合为\(S\),若不存在\(z\inS\)满足存在边\((z,x)\),则将\(x\)加入\(S\)。否则......
  • 使用chai3d-GEL模块进行软体模型力反馈仿真的一点碎片化记录
    在要模拟的网格模型中手动添加节点或者对于形状比较复杂的模型使用TetGen之类的网格划分程序自动添加节点和连接;然后设置合理的仿真参数(质量、刚度、重力、时间步长...)骨架驱动:SkeletonModel 使用骨架结构来表示变形体。骨架由一系列节点(cGELSkeletonNode)和连接这些节点的弹簧(c......
  • 记录一次FFmpeg的安装过程
    系统版本:CentOS7事情起因:生产环境因为外网开放,密码强度为初始密码,造成挖矿病毒攻击,删除过程中发现,删除文件的同时,病毒会同时从外网下载,怎么也删除不干净,故决定重装系统。同事是在2024年6月19日部署的生产环境,不巧的是CentOS7在2024年6月30日停止维护了,造成无法通过yum命......
  • 无纸记录功能电能计量表 在工业配电系统中的应用
     安科瑞刘鸿鹏摘要随着社会经济的快速发展,现代配电系统对电能质量、用电效率及安全性的要求越来越高。网络电力仪表作为一种集数据采集、分析和控制于一体的智能设备,广泛应用于现代配电系统中。本文以安科瑞APM系列网络电力仪表为例,探讨其在配电系统中的应用价值及未来发展......
  • 【PaddleOCR 踩坑记录】FatalError: `Illegal instruction` is detected by the opera
    背景需要使用GPU版的PaddleOCR安装步骤如下:参考官方文档condacreate--nameocrcondaactivateocrpipinstallpaddlepaddle-gpupipinstallpaddleocr问题出现报错如下:(ocr)user@user:~/Desktop/ocr$paddleocr--image_dir./imgs/11.jpg--use_angle_cls......
  • 2025-1-6 / 2025-1-7 做题笔记
    2025-1-6/2025-1-7做题笔记持续更新中……目录2025-1-6/2025-1-7做题笔记P11365[Ynoi2024]新本格魔法少女りすかCF1693D-DecincDividingATUTPC2023G-GraphWeightingABC269Ex-AntichainP11365[Ynoi2024]新本格魔法少女りすかケロシの代码namespaceIO{ ......
  • Java学习记录
    面向对象封装对象代表什么,就得封装对应数据,并提供数据对应行为例子1:人画圆对象:圆、人则画圆的方法应该写在圆的类中(画圆会对应到圆的半径等数据)publicclassCircle{doubleradius;publicvoiddraw(){System.out.println("根据半径"+radius+"......
  • SQL Server如何查看AlwaysOn的Failover记录信息
    SQLServerAlwaysOn发生了故障转移(Failover)后,我们如何查看AlwaysOn在什么时间点发生故障转移呢?下面简单的总结了一些资料。PowerShell脚本查看Windows事件日志系统中的事件ID=1641,表示群集角色已从一个节点移动到另一个节点。所以我们可以使用PowerShell脚本获取/过滤这类事件......
  • Windows服务器自带防火墙查看启停记录信息
    <sectionid="nice"data-tool="mdnice编辑器"data-website="https://www.mdnice.com"style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;background-attachment:scroll;background-clip:border-bo......