• 12.22 codeforces 1463


    problem A 

    题意:三个怪兽,每次选一个怪兽造成一点伤害,第7的倍数次攻击改为对所有怪兽造成一点伤害,问能否一次性消灭三个怪兽

    题解:sum是9的倍数且每个数不小于sum/9

    证明:不难发现最简单的情况就是操作6次使得三个数都变成111然后再全部-1。考虑到多次的全部-1对这个最终态其实是没影响的,所以只要保证是9的倍数,就有可能会出现111的终态。考虑到全部数变成111的操作次数应该上限是sum/9 也就是一个很小的数和很大的数的组合,所以最小的数应该要>=sum/9。

    problem B

    题意:给定一个数列a,让你构造一个数列b使得

    ·1<=bi<=10^8

    ·bi是b i+1的倍数 或 b i+1是bi的倍数 (1<=i<n) 

    ·2 * sigma(ai-bi)<=s  s=sigma (ai)

    题解:考虑最后一个式子,得出差值应该不能大于ai/2。

    把a拆分成二进制,直接取首位是1其他位是0进行构造。

    ps.事实上不知道要不要取a+1然后再求拆分一次然后取个min。。。

    problem C

    题意:

    一个一维坐标轴,在最初时刻有个机器人位于坐标 0位置,有 n  个命令,对于每一个命令在 ti可以向 xi以每秒一单位的距离移动,当机器人在移动过程中,会忽视此时其他的命令。

    现在定义第 i 个成功的命令:在  [ti,t(i+1)]经过 xi,则说明这条命令是成功的。第 t n+1 = inf ⁡ 。被忽视的命令也可能是成功的

    题解:模拟,直接线性扫一遍看每次是否到达目标点,并且途中顺便处理有哪几条命令是成功的

    problem D

    题意:1,2,3,4,...,2n,这些数划分为n对数。然后你对其中一些对取min,一些对取max,然后得到b数组。设取min的个数为x
    现在给你b 数组,存在多少个x使得最终结果为b数组。

    题解:假设剩下的n个数是ai,a和b排序,考虑答案应该是x的两个上下界的差。

    x的上下界应该是满足,前x个数都必须取min,且剩下的数取max是合法的。事实上,取max的数中存在可以取min的可能性。

    那么答案就是这些又能取max又能取min的数的个数了。考虑到上下界都满足x长度的单调性,所以考虑二分x两次分别求上界和下界。

    事实上也应该可以对min求一次下界,对max求一次下界,就知道有多少能取max也能取min的数了。

    (ps 事实上我觉得贪心也能过,考虑到bi和b(i-1)之间的数应该是会对bi之后的数的max操作做贡献的,同理还有min操作,所以可以不用写二分来分别求min和max的下界。

    problem E 

    题意:给定一个有向图(有根树),然后给定m个数对(i,j)表示遍历到i就必须立刻遍历j。问合法的遍历序。

    题解:考虑直接强行合并数对(i,j) 缩点。 考虑数对(i,j) 缩的点是否构成环。

  • 相关阅读:
    Windows Server 2008上安装 Windows SharePoint Services 3.0
    自定义Unity 容器的扩展 Unity Application Block Event Broker
    .NET Migration工具
    ASP.NET 应用程序的扩展策略[MSDN 杂志]
    命令行解析的规则以及Command Line Parser Library
    Visual Studio 2008 SP1和.NET FX 3.5 SP1发布了
    Entity Framework samples For RTM
    PowerShell的开源实现
    Enterprise Library 4.0缓存应用程序块
    Microsoft SQL Server Community & Samples
  • 原文地址:https://www.cnblogs.com/yz12138/p/14181864.html
Copyright © 2020-2023  润新知