当前位置: 首页 > 编程日记 > 正文

CF949C Data Center Maintenance(建图+强联通分量)

题意

有 n 个信息中心,第 i 个信息中心要在第 ti 个小时维护,维护期间信息不能被获得。

每个用户的数据都有两份备份,第 i 个用户的数据放在信息中心 c(i,1) 和 c(i,2)。

现在要挑选一个尽量小的信息中心集合,使得将这个集合的维护时间推迟一个小时后,仍然能保证每个用户的数据在任意时刻都能获得。

n≤100000

题解

对于每对 c(i,1),c(i,2),若调整 c(i,1) 后与 c(i,2) 的维护时间冲突,则连边 (c(i,1), c(i,2) )
对于 c(i,2),c(i,1) 亦然
求出强连通分量,所求集合即为缩点后度数为 0 的最小的 SCC
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7 const int N=500100;
 8 int cnt,head[N];
 9 int dfn[N],low[N],stack[N],vis[N],w[N],c[N],num,tot,top;
10 int n,m,h,t[N],ans,a[N],b[N],deg[N];
11 struct edge{
12     int to,nxt;
13 }e[N];
14 void add(int u,int v){
15     cnt++;
16     e[cnt].nxt=head[u];
17     e[cnt].to=v;
18     head[u]=cnt;
19 }
20 void Tarjan(int u){
21     dfn[u]=low[u]=++tot;
22     stack[++top]=u;
23     vis[u]=1;
24     for(int i=head[u];i;i=e[i].nxt){
25         int v=e[i].to;
26         if(dfn[v]==0){
27             Tarjan(v);
28             low[u]=min(low[u],low[v]);
29         }
30         else if(vis[v])low[u]=min(low[u],dfn[v]);
31     }
32     if(low[u]==dfn[u]){
33         int x;
34         num++;
35         do{
36             x=stack[top--];
37             c[x]=num+n;
38             w[num+n]++;
39             add(num+n,x);
40             vis[x]=0;
41         }while(x!=u);
42     }
43 }
44 int main(){
45     scanf("%d%d%d",&n,&m,&h);
46     for(int i=1;i<=n;i++){
47         scanf("%d",&t[i]);
48     }
49     for(int i=1;i<=m;i++){
50         scanf("%d%d",&a[i],&b[i]);
51         if(t[a[i]]+1==t[b[i]]||(t[a[i]]==h-1&&t[b[i]]==0))add(a[i],b[i]);
52         if(t[b[i]]+1==t[a[i]]||(t[b[i]]==h-1&&t[a[i]]==0))add(b[i],a[i]);
53     }
54     for(int i=1;i<=n;i++){
55         if(dfn[i]==0)Tarjan(i);
56     }
57     for(int i=1;i<=m;i++){
58         if(c[a[i]]==c[b[i]])continue;
59         if(t[a[i]]+1==t[b[i]]||(t[a[i]]==h-1&&t[b[i]]==0))deg[c[a[i]]]++;
60         if(t[b[i]]+1==t[a[i]]||(t[b[i]]==h-1&&t[a[i]]==0))deg[c[b[i]]]++;
61     }
62     int minn=9999999;
63     for(int i=n+1;i<=n+num;i++){
64         if(deg[i]==0&&minn>w[i]){
65             minn=w[i];
66             ans=i;
67         }
68     }
69     printf("%d\n",w[ans]);
70     for(int i=head[ans];i;i=e[i].nxt){
71         int v=e[i].to;
72         printf("%d ",v);
73     } 
74     return 0;
75 } 
View Code

转载于:https://www.cnblogs.com/Xu-daxia/p/9385811.html

相关文章:

fabric 启动peer_编写 Fabric 链码的一般准则

我相信智能合约(链码)是 Hyperledger Fabric 区块链网络的核心。正确开发链码可以真正发挥一个安全区块链的优势&#xff0c;反之则会带来灾难性的后果。在这篇文章里我不打算探讨 Hyperledger Fabric 链码设计的特定模式的好与坏&#xff0c;而是希望分享我在开发若干 Hyperle…

Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分)

#Qt pro文件下跨平台宏的使用&#xff08;windows/linux 以及x86 和 arm的区分&#xff09; 在pro文件中添加&#xff1a; #仅在linux 系统下&#xff0c; 硬件平台无关的内容 unix{HEADERS \SOURCES \Manager.cpp \ }#arm64 的编译宏 contains(QMAKE_HOST.arch, aarch64){…

数论(一)——素数,GCD,LCM

这是一个数论系列&#xff1a;&#xff09; 一、素数 费马小定理 Theorem&#xff1a; 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的。对 a 2,满足的非素数 n 是存在的。 比如 n 341 11 31 对于整数 a,称满足的合数为以 a 为底的…

java自学 day1

1.数据类型 基本数据类型&#xff08;存放数据本身&#xff09; 分为数值型&#xff08;int&#xff0c;double等&#xff09; 字符型&#xff08;char&#xff09;布尔型&#xff08;boolean&#xff09; 引用数据类型&#xff08;存放数据的地址&#xff09;分为类&#xff0…

Qt下一行代码就可以使用的稳定易用的日志log类

Qt下一行代码就可以使用的稳定易用的日志类 此日志类是基于Qt 自带的 扩展的一个易用的日志类&#xff0c; 使用的是Qt自带的日志输出形式&#xff0c; 已长期运行在许多实际项目中&#xff0c;稳定可靠&#xff0c;而且跨平台&#xff0c; 在windows和linux 上都能稳定运行 …

apue读书笔记-第十二章

1 可重入&#xff0c;线程安全&#xff0c;异步信号安全之间的区别&#xff1f; 可重入&#xff1a;可以重复进入&#xff0c;不会引起问题&#xff08;这个概念最宽&#xff09; 线程安全&#xff1a;被多个线程使用时&#xff0c;不会出问题&#xff0c;也就是可以被多个进程…

取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...

统一资源定位符&#xff08;缩写URL&#xff09;是对Web资源&#xff08;网页&#xff0c;图像&#xff0c;文件&#xff09;的引用。URL指定资源位置和检索资源的机制&#xff08;http&#xff0c;ftp&#xff0c;mailto&#xff09;。例如&#xff0c;这是此博客文章的URL&am…

SQL Server 2008中的Pivot和UnPivot

SQL Server 2008中SQL应用系列--目录索引 今天给新成员讲解PIVOT 和 UNPIVOT示例&#xff0c;顺便整理了一下其用法。这是自SQL Server 2005起提供的新功能。 官方示例&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms177410%28vsql.105%29.aspx 首先看PIVOT示例&#…

leetcode python 032 识别最长合法括号

# 给定一个只包含字符&#xff08;和&#xff09;的字符串&#xff0c;# 找到最长的有效&#xff08;格式良好&#xff09;括号子字符串的长度。# 对于“&#xff08;&#xff08;&#xff09;”&#xff0c;最长的有效括号子串是“&#xff08;&#xff09;”&#xff0c;其长…

Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析

在Android系统中&#xff0c;Activity窗口的大小是由WindowManagerService服务来计算的。WindowManagerService服务会根据屏幕及其装饰区的大小来决定Activity窗口的大小。一个Activity窗口只有知道自己的大小之后&#xff0c;才能对它里面的UI元素进行测量、布局以及绘制。本文…

pcl需要注意的编译问题

pcl需要注意的编译问题 不要在头文件里 using namespace pcl 这会导致编译错误,而且根本分析不到错误在哪 不要在编译选项 里加 -marchnative 这个是让编译器根据你当前的cpu类型进行特定的编译优化, 例如 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdc11 -march…

linux python版本_linux下更新Python版本并修改默认版本

linux下更新Python版本并修改默认版本&#xff0c;有需要的朋友可以参考下。很多情况下拿到的服务器python版本很低&#xff0c;需要自己动手更改默认python版本1、从官网下载python安装包(这个版本可以是任意版本3.3 2.7 2.6等等)wget http://python.org/ftp/python/2.7/Pytho…

基于HTML5的Google水下搜索

这次愚人节的时候&#xff0c;Google推出了水下搜索&#xff0c;当然&#xff0c;这只是一个愚人的小把戏&#xff0c;不过效果非常不错&#xff0c;进入页面后&#xff0c;第一眼是一个水面的效果&#xff0c;水下的鲨鱼在游来游去&#xff0c;然后Google logo和搜索框从水面上…

windows下rpc框架thrift的环境配置

windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rpc 框架 thrift , 网上东西看了很多, 但是大都不能一篇到位, 这里总结了一下, 也记一下自己遇到的问题和解决的方法 这里把我在实际过程中遇见的问…

CentOS 6.3 安装 samba 共享

PHP环境在linux下&#xff0c;但是开发的时候用的是windows&#xff0c;于是我用了samba将linux的一个目录共享&#xff0c;然后在windows上做映射&#xff0c;这样就可以直接在windows下编辑linux上的文件了 首先&#xff0c;安装samba软件&#xff0c;我采用的是yum安装&…

微信小程序 长按图片不出现菜单_微信更新,新功能上了热搜

微信在推出新功能方面相当克制&#xff0c;但每一次总能引起全网关注。昨天&#xff0c;微信又因为一个小功能的改进再次上了热搜&#xff0c;在安卓最新的 7.0.17 版本当中&#xff0c;微信取消了两分钟内删除功能。在新版微信中&#xff0c;发出的消息在两分钟内只有撤回功能…

windows下配置java环境jdk

Windows系统下搭建java的开发环境和配置环境变量 具体步骤打开链接地址&#xff1a;https://www.cnblogs.com/lijuntao/p/6694483.html转载于:https://www.cnblogs.com/ccw869476711/p/9401468.html

mysql 分区_搞懂MySQL分区

一.InnoDB逻辑存储结构首先要先介绍一下InnoDB逻辑存储结构和区的概念&#xff0c;它的所有数据都被逻辑地存放在表空间&#xff0c;表空间又由段&#xff0c;区&#xff0c;页组成。段段就是上图的segment区域&#xff0c;常见的段有数据段、索引段、回滚段等&#xff0c;在In…

apt Could not get lock /var/lib/dpkg/lock 解决方案

apt Could not get lock /var/lib/dpkg/lock 解决方案 删除锁定文件 sudo rm /var/lib/dpkg/lock

oracle创建DBLink连接

1.创建dblink的第一种方式&#xff0c;是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。tnsnames.ora文件在你安装oracle客户端安装文件里 如&#xff1a;(E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN) 创建远程连接&#xff1a; INT (DESCRIPTION (ADDRES…

理解oracle中连接和会话

理解oracle中连接和会话1. 概念不同&#xff1a;概念不同&#xff1a; 连接是指物理的网络连接。 在已建立的连接上&#xff0c;建立客户端与oracle的会话&#xff0c;以后客户端与oracle的交互都在一个会话环境中进行。 2. 关系是多对多&#xff1a; 一个连接上可以建立0个…

ActiveMQ消息存储持久化

转https://www.cnblogs.com/xinhuaxuan/p/6128380.html https://blog.csdn.net/lr131425/article/details/68064914 为了避免意外宕机以后丢失信息&#xff0c;需要做到重启后可以恢复消息队列&#xff0c;消息系统一般都会采用持久化机制。 就是在发送者将消息发送出去后&…

python 非_Python函数的非固定参数

一、概述在原来的文章中我已经写了&#xff0c;位置参数和关键字参数&#xff0c;下面我们来谈谈默认参数和参数组二、默认参数默认参数指的是&#xff0c;我们在传参之前&#xff0c;先给参数制定一个默认的值。当我们调用函数时&#xff0c;默认参数是非必须传递的。默认参数…

C#关于面对象多态例子

//主的喂狗 class Program { static void Main(string[] args) { //我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗 //买来条狗&#xff0c;主人一喂&#xff0c;狗会吃东西 Person person ne…

ubuntu package XXX needs to be reinstalled,but I can't find an archive 问题修复

ubuntu package XXX needs to be reinstalled, but I can’t find an archive 修复 原文连接: https://blog.csdn.net/tbitwqb/article/details/78241101 内容&#xff1a; 不知道什么原因&#xff0c;可能是升级过程过关机或者其他什么情况导致当前问题的发生。 无论是apt…

CentOS6.2解决passwd: Authentication token manipulation error报错

passwd: Authentication token manipulation error这种错误可能有多种原因&#xff0c;就我了解的可能有/etc/passwd等文件i权限 今天在给学员上课的时候发现提示passwd: Authentication token manipulation error错误&#xff0c;我来简单描述今天的问题 [roothost4 Scripts]#…

Java核心技术第五章——2.Object类

Object类&#xff1a;所有类的超类 Object类是Java中所有类的始祖&#xff0c;在Java中每个类都是由它扩展而来的。但是并不需要这样写&#xff1a; public class Emloyee extends Object 如果没有明确的指出超类&#xff0c;Object就被认为是这个类的超类。在Java中&#xff0…

21day学通python_铁乐学python_day21_面向对象编程3

抽象类和接口类以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/继承有两种用途&#xff1a;一&#xff1a;继承基类的方法&#xff0c;并且做出自己的改变或者扩展(代码重用)二&#xff1a;声明某个子类兼容于某基类&#xff0c;定义一个接口类Interface&#xff0c;接口…

系统crash无法启动 tpm error / could not read size 0x8000000e

系统crash无法启动 tpm error / couldn’t read size 0x8000000e 原文连接: https://unix.stackexchange.com/questions/305719/a-tpm-error-7-occurred-attempting-to-read-a-pcr-value-in-centos 内容&#xff1a; 问题&#xff1a; I’m getting this error while booting…

ASP.NET文件的下载

/// <summary>/// 下载文件/// </summary>/// <param name"filePath">文件的路径</param>/// <param name"fileName">文件名(有时候文件名存在数据库中用于替换路径中的文件名)</param>public void FileDownLoad(stri…