NOIP 2012 Day2 T3 疫情控制

CSP-J/S第二轮历年真题考点分析 T4 矩形覆盖 动态规划(高级)、搜索、剪枝。11.NOIP2015 提高组 DAY1。13.NOIP2014 提高组 DAY1。T2 联合权值 动态规划(高级)、前缀和。15.NOIP2013 提高组 DAY1。17.NOIP2012 提高组 DAY1。18.NOIP2012 提高组 DAY2。19.NOIP2011 提高组 DAY1。T2 选择客栈 动态规划(高级)、RMQ。20.NOIP2011 提高组 DAY2。5.NOIP2018 提高组 DAY1。6.NOIP2018 提高组 DAY2。 阅读详情
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<queue>
#include<stack>
#include<vector>
#include<cmath>
#include<algorithm>
#include<iomanip>
#include<bitset>
using namespace std;
struct data
{
    int l;
    long long w;
};
    data k,need[50005];
vector <data> city[1005];
int n,m,a,b,ans,kk,cnt;
int tt,ff;
long long c,mid,l=1,r;
long long lt[50005],send[50005];
int zz[50005],army[50005],dis[50005][20],f[50005][20];
int dep[50005],stay[50005],one[50005],g[50005][2],sec[50005];
bool vis[50005],vis2[50005],p[50005];
bool comp(data x,data y)
{
    if (x.w>=y.w)  return true;
    return false;
}
bool comp2(int x,int y)
{
    if (x>=y)  return true;
    return false;
}
void dfs(int x)
{
    vis[x]=true;
    for (int i=0;i<city[x].size();i++)
        if (!vis[city[x][i].l])
        {
            dep[city[x][i].l]=dep[x]+1;
            dis[city[x][i].l][0]=city[x][i].w;
            f[city[x][i].l][0]=x;
            dfs(city[x][i].l);
        }
}
void init()
{//here
    for (int j=1;(1<<j)<=n;j++)
        for(int i=1;i<=n;i++)
        {
            f[i][j]=f[f[i][j-1]][j-1];
            dis[i][j]=dis[f[i][j-1]][j-1]+dis[i][j-1];
        }
}
void up(int x,int s)
{
    for (int i=0;dis[x][i]<=lt[s];i++)
    {
        p[x]=false;
        x=f[x][i];
        p[x]=true;
        army[s]=x;
        lt[s]-=dis[x][i];
        if (lt[s]<lt[stay[x]])  stay[x]=s;
        if (dep[x]==2)  return ;
    }
    return ;
}
int dfs2(int x)
{
    int s=0;
    vis2[x]=true;
    for (int i=0;i<city[x].size();i++)
        if (!vis2[city[x][i].l])
        {
            dfs2(city[x][i].l);
            if (p[city[x][i].l]==false)  break;
            else  s++;
        }
    if (s==city[x].size()){p[x]=true;return 2;}
    if (p[x]==true)  return 1;
    return 0;
}
int ss()
{
    if (ff<tt) return 0;
    sort(need+1,need+1+tt,comp);
    sort(send+1,send+1+ff,comp2);
    for (int i=1;i<=tt;i++)
        if (need[i].w>send[i])  return 1;
    return 0;
}
int check()
{
    tt=0,ff=0;
    vis2[1]=true;
        for (int i=0;i<city[1].size();i++)
        {
            int t=dfs2(city[1][i].l);
            one[city[1][i].l]=t;
            if (t==0){
                need[++tt].l=city[1][i].l;
                need[tt].w=city[1][i].w;
            }
        }
    for (int i=1;i<=m;i++)
        if (dep[army[i]]==2)
        {
            if (one[army[i]]==1&&stay[army[i]]!=i)
            {
                if (lt[i]-g[i][0]>=0)
                {
                    lt[i]-=g[i][0];
                    send[++ff]=lt[i];
                }
            }
            if (one[army[i]]==2&<[i]-g[i][0]>=0)
            {
                lt[i]-=g[i][0];
                    send[++ff]=lt[i];
            }
        }
    return ss();
}
int main()
{
    freopen ("blockade.in","r",stdin);
    //freopen ("blockade.out","w",stdout);
    scanf ("%d",&n);
    for (int i=1;i<=n-1;i++)
    {
        scanf ("%d%d%lld",&a,&b,&c);
        k.l=b;k.w=c;city[a].push_back(k);
        k.l=a;k.w=c;city[b].push_back(k);
        r+=c;
        if (a==1||b==1)  kk++;
    }
    scanf ("%d",&m);
    if (m<kk){printf ("-1");return 0;}
    for (int i=1;i<=m;i++)
    {
        scanf ("%d",&a);
        zz[++cnt]=a;
        army[cnt]=a;
        p[a]=true;
    }
    vis[1]=true;
    for (int i=0;i<city[1].size();i++)
    {
        g[city[1][i].l][0]=city[1][i].w;
        f[city[1][i].l][0]=city[1][i].l;
        dep[city[1][i].l]=2;
        dfs(city[1][i].l);
    }
    init();//here
    lt[0]=1e14;
    while (l<r)
    {
        mid=(l+r)>>1;
        for (int i=1;i<=cnt;i++)
        {
            lt[zz[i]]=mid;
            up(zz[i],i);
        }
        if (check())  l=mid+1;//and here
        else r=mid;
    }
    printf ("%d",r);
    return 0;
}

Kali Linux实战:Aircrack-ng破解Wi-Fi密码的完整流程与常见问题解决 本文详细介绍了在Kali Linux中使用Aircrack-ng套件进行Wi-Fi密码破解的完整流程,包括环境准备、无线网卡配置、网络扫描、握手包捕获与字典破解等关键步骤。同时针对无线网卡不支持监听模式、无法捕获握手包等常见问题提供了实用解决方案,帮助安全研究人员有效评估无线网络安全性。 阅读详情

相关推荐

tree_sitter多语言解析器配置实战指南

本文是一份详细的Tree-sitter多语言解析器配置实战指南。文章从零开始,手把手指导如何搭建Python环境、安装指定版本的tree-sitter库、下载并编译多种语言的语法规则,最终构建一个统一的解析器库。通过实战代码演示了如何初始化解析器、解析代码并遍历语法树,旨在帮助开发者高效处理多语言代码分析任务,并分享了高级技巧与常见问题排坑经验。

weixin_29245767的博客 267

「NOIP2012」疫情控制 题解

完成这个题后,得到的教训是数组初始化和for循环结束条件一定要统一(emmm)「NOIP2012」开车旅行和「NOIP2013」货车运输完结撒花❀★,°.°★。

young_1217的博客 1073

HFSS的边界条件与激励方式

在电磁场理论学习中我们知道,电磁场问题的求解都归结于麦克斯韦(Maxwell)方程组的求解,在HFSS中波动方程的求解同样是由微分形式的麦克斯韦方程推导出来的。而边界条件定义了求解区域的边界以及不同物体交界处的电磁场特性,是求解麦克斯韦方程的基础。 只有在假定场矢量是单值、有界、并且沿空间连续分布的前提下,微分形式的麦克斯韦方程组才是有效的;而在求解区域的边界,不同介质的交界处和场源处,场矢量是不连续的,那么场的导数也就失去了意义。 边界条件就是定义跨越不连续边界处的电磁场特性,因此,正确地理解、定义并

ASH_GUARDIAN的博客 1万+

[NOIP] [LCA] [贪心] NOIP2012Day2 疫情控制(blockade)

//这题真心BT,阅读时请做好心理准备 题目描述 Description H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点。 H国的首都爆发了一种危害性极高的传染病。当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以建立检

HeRaNO@HSAHRBNU 1878

Android车载应用开发与分析(11)- 车载Android应用开发入门指南

将时间回退到2017年我大学刚毕业时,彼时移动互联网就已经开始退潮,各大个培训机构也纷纷停止了Android相关的培训,曾经热火朝天的应用开发从那时起,就开始走向下坡路,小程序以及众多跨平台框架也让市场对Android原生开发的需求逐年降低,市场需求的降低也造就了Android开发的面试变得史无前例的“卷”。 终于我在2019年选择离开了互联网,投身当时还不是非常火热的车载Android领域继续从事Android原生开发。而这一年中国首个外商独资的整车制造项目,“...

linkwj的博客 1万+

华为海思2026届数字IC秋招笔试真题解析与实战技巧(2025最新版)

本文深度解析华为海思2026届数字IC秋招笔试真题,涵盖高频考点如后端设计、低功耗设计、SystemVerilog语法等核心内容。提供时序违例修复、时钟树综合等实战技巧,帮助考生高效备考。特别关注UPF低功耗设计规范等最新考点,助力考生在秋招笔试中脱颖而出。

lg888的博客 1089

【NOIp】NOIp2012

NOIp 2012 day 1 T1 Vigenère 密码 标签:模拟 主要是用了ASCII码,字母'A'的ASCII码是41H(0100 0001B),字母'a'的ASCII码是61H(0110 0001B),字母'A'与'a'的二进制后5位是相同的,所以无论是大写字母还是小写字母x,x &31(1 1111B)的值就是x在字母表里的顺序。 简单判一下边界就行了 c...

weixin_30539625的博客 269

VASP计算层错能(SFE)全攻略2

本文介绍了使用VASP计算纯镍(Ni)层错能(SFE)的具体步骤。首先构建Ni的FCC单胞并扩展为超胞,通过修改原子位置引入堆垛层错;随后分别计算完美晶体和含层错结构的能量;最后通过能量差与层错面积之比求得SFE值。计算需注意k点网格、截断能和超胞尺寸的收敛性测试,并推荐使用PAW赝势和ASE等工具辅助结构构建。

weixin_50519490的博客 1986

7.16 NOIP 2012

NOIP 2012 DAY 1 T1 Vigenère密码 纯模拟 #include<bits/stdc++.h> char a[105],b[1005],ans[1005]; int len1,len2,h=1,p; int c[105]; using namespace std; int main(){ // freopen("vigenere.in","r",stdin); ...

Elaiza_的博客 239

超声波清洗机拆解实录:从电路板到换能器,一文看懂内部构造(附高清图)

本文详细拆解了超声波清洗机的内部构造,从电路板设计到换能器工作原理,揭示了其核心技术。通过高清图片和详细分析,展示了功率放大电路、高频变压器及压电换能器等关键部件,为电子爱好者和维修技术人员提供了实用的故障诊断和元件二次利用指南。

grape的博客 1183

遥感影像分割实战:LoveDA数据集从下载到训练全流程指南(附避坑技巧)

本文以LoveDA数据集为例,提供了一份详尽的遥感影像语义分割实战指南。内容涵盖从数据下载、理解与预处理,到环境配置、模型选择与训练,再到性能调优与部署的全流程,并重点分享了多个关键环节的避坑技巧,旨在帮助开发者和研究者高效上手并解决实际问题。

cherry的博客 929

【noip】开车旅行 平衡树 倍增 treap tree

noip2012年day1最后一题 感觉2012年的都好难写 疫情控制也是。。 描述 小A和小B决定利用假期外出旅行,他们将想去的城市从1到N编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i 的海拔高度为Hi,城市i 和城市j 之间的距离d[i,j]恰好是这两个城市海拔高度之差的绝对值,即d[i,j] = |Hi - Hj|。 旅行过程中,

anantheparty的博客 1166

Node-RED教程(二):Node-RED的面板的操作

Node-RED系列(二):Node-RED的面板的操作 要使用Node-RED去搭建一个物联网平台,链接设备,设备通信,就必须要先熟悉Node-RED的这种面板,对于一个新的项目,在动手做之前一点想对这个的技术的文档有足够的了解做起来才能游刃有余。本期我给大家介绍一下Node-RED的各种面板,熟悉这些面板后,在后续的搭建Iot服务中,会举重若轻,同时该系列的文档,难度会逐步加深,知道了本章解释的名称后对后续文章的理解有很大帮助。 面板1:默认节点选项列表 安装Node-RED后默认的节点分为这5大类

知无涯 1万+

【NOIP2012】DAY1+DAY2题解

不贴代码的原因是我的代码在初中机房。忘记带过来了。 DAY 1 T1随便搞,但是字符串相关的题我经常犯蠢 T2 一个结论题,OAO但是需要高精度写。 具体就是按左手的数除右手的数(还是怎么的来着)排个序 算过去就行了。证明的话QAQ不会,但是曾经想通过 T3 开车旅行 是个倍增 没写【不会】 OAO我好咸啊 DAY2 T1 用拓展欧几里得解,我数学不好直接背板子了。抱...

dianxin2815的博客 213

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

noip2012day2题解

T1 同余方程 恩。。。exgcd。。对于会的人来说这道题基本等于水题吧 #include&lt;cstdio&gt; void exgcd(long long a,long long b,long long &amp;x,long long &amp;y) { if(!b) { x=1; y=0; return; } else { exgcd(b,a%b,y,x...

Amuseir的博客 394

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NOIP 2012 Day2

tags: 扩展欧几里得 二分答案 查分 倍增 二分答案 贪心 NOIP categories: 信息学竞赛 总结 同余方程 借教室 疫情控制 同余方程 Solution   首先同余式可以转化为等式. \[ax\equiv 1\mod b\Leftrightarrow ax+by=1\]   根据扩展欧几里得定理, 对于式 \[ax+by=k(a,b),k\in \mathbf{R}\]一定...

weixin_30577801的博客 155

CSP-S (NOIP提高组) 历年复赛真题考察内容(1999~2020)

TZOJ题目分类 1.NOIP2020 T1 排水系统 拓扑排序、高精度 T2 字符串匹配 KMP T3 移球游戏 构造、分治 T4 微信步数 多项式 2.CSP-S 2020 T1 儒略日 大模拟、二分 T2 动物园 二进制 T3 函数调用 拓扑排序、记忆化搜索 T4 贪吃蛇 大模拟、双端队列 3.CSP-S 2019 DAY1 T1 格雷码 模拟 T2 括号树 树型DP T3 树上的数 贪心、深搜 4.CSP-S 2019 DAY2 T1 Emiya 家今天的饭 动态规划(高级) T2 划分 单调队列D

BobHuang的博客 8443

GMOJ 2021.1.15模拟赛总结

GMOJ 2021.1.15模拟赛总结 第二天考的是2012NOIP提高真题Day1T3和Day2三道题,只会打T2和T3(和另外两题难度根本不是一个等级) T1 开车旅行 很容易想得到思路一定是先预处理每个城市上小A和小B要跳到的下一个城市,然后直接模拟,分两部分看 1.预处理部分 暴力O(n2)O(n^2)O(n2)直接爆炸。但是可以优化,比较容易的做法是先排序 用链表串起来然后从头到尾扫一遍,每次只用看相邻的四个(左边两个右边两个)城市,扫完当前的直接删除。因为是从头到尾扫所以只会出现当前城市以东的城

qq_45828593的博客 169

Vijos[1983]NOIP2015Day2T3 运输计划 transport LCA

题目链接Vijos 题目链接UOJ 该博客在博客园的链接 转载一个大佬的题解: 点击这里->银牌爷题解 主要考察二分查找、树上倍增、贪心、“树上前缀和”。 题目是一颗树,要求将一条边的权值变为0,使得所有运输计划的最大时间最小。 直觉告诉我们,这是一个树上倍增的题目,但是它却不像前几年的 Day2T3 开车旅行那样纯倍增,或许更像疫情控制一些,倍增只是辅助算法,还

a545415的博客 437

NOIP2012 提高组 Day 2

http://www.cogs.pro/cogs/page/page.php?aid=16 期望得分:100+100+0=0 实际得分:100+20+0=120 T2线段树标记下传出错 T1 同余方程 时间限制:1 s 内存限制:128 MB 【题目描述】 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。 【输入格式】 输入只有一行,包含两个正整数 a, ...

weixin_34390105的博客 179

NOIP2012题目简析

chunlvxiong的博客 DAY1: T1:Vigenere密码   简单模拟题。照着题目走就好了。无智商含量。 T2:国王游戏    这题还是比较有趣的,思考方式如下:   设第i个人左手上的数为Ai,右手上的数为Bi。   假设X排在Y前面一个位置,同时X前面的人左手数字乘积为C。   那么X获得的奖赏为C/BX,Y获得的奖赏是C*AX/BY。   如果X...

weixin_30537451的博客 232

Noip刷题计划

写在前面 去年也想刷10年NOIP来着。。结果刷到13年就没动力了233.。。 今年一定要完成目标啊!! “愿你明日重生,醒时心存冬阳” 2018年 题目 首次得分 出错原因 考点 铺设道路 100 —— 思维 货币系统 100 —— dp 赛道修建 45 细节 贪心 旅行 92 考虑不全 图论,模拟 填数游戏 50 菜 数论 保卫王国 44 菜 dp 总...

wxyww2049的博客 45

一个蒟蒻未切的题o(╥﹏╥)o

jzoj 3104. 【NOIP2012提高组】疫情控制 ↑就是个二分+贪心,码量有点长(码农题) jzoj 3053. 【NOIP2012模拟10.25】旅行 ↑我的程序有个bug jzoj 4754. 【GDOI2017模拟9.4】矩阵 ↑还不会 jzoj 4752. 【GDOI2017模拟9.4】字符串合成 ↑还不会 加油吧ヾ(◍°∇°◍)ノ゙,还差得远呢~ ...

Larry1118的博客 359

历年noip复赛试题整合

早晨打算把历年的试题都过一遍,整理一下大概会往哪个方向考,考什么,不说太多,开始吧 2013: Day1: T1 转圈游戏 : 快速幂(关键在于要会打 快速幂) 思路:因为每次都进m位,相当于每次x加上m,即x总共前进了m*10^k; 答案就是(x+m*10^k)mod n T2 火柴排队:离散->转化成求逆序对模型 T3 货车运输:生成树相...

weixin_30659829的博客 276

索引(填坑进度:1%)

先安利《Ever17~The Out of Infinity~》一、USACO Season 1st 2nd 3rd US Open 2016-2017 December 2016 January 2017 February 2017 2017 US Open 2015-2016 December 2015 January 2016 Februa

Nothing 502

图论

出现频率:每年必考 主要出现在T2,T3

沙茶酱的代码库>__< 384
上一篇: NOIP 2011 Day2 T1 计算系数
下一篇: NOIP 2013 Day1 T3 货车运输
Ang_Eric_
博客等级 码龄10年 0粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值