zoukankan      html  css  js  c++  java
  • Codeforces Round #670 (Div. 2)

    CF复健的第一场比赛。

    div2只做出前三题太丢人了。

    前三题过于简单就不写题解了。

    D:给你一个序列,要你构造单调不下降子序列(bi<=bi+1)和单调不上升子序列(ci>=ci+1)使得bi+ci=ai,要你最小化max(bi,ci)

    思路:赛中是真不会做,主要是如何构造最优解没想明白。实际上感觉正常人都应该推的出来。果然思维题太菜了。我们从左到右推这个数组。如果ai>ai+1,那么我们只要ci不动,bi变大即可,不然如果ci动了,bi只会变得更大,肯定不优。ai<ai+1同理。那么我们就发现答案就是max(c1,a1-c1+sum(chafen[i]>0的部分)),所以区间修改只需要对差分数组单点修改即可。就可以通过本题(

    E:一开始有一个1-n的set,你要找出一个小等于n的数,每次有2种操作,一种是A x表示查询当前set内x的倍数有几个。一种是B x表示查询当前set内x的倍数有几个,并删除他们,x必须大于1。(但是特定的数字不会被删除)n<=100000,要你在10000次操作里完成查找。

    思路:这题就是最后一步想复杂了。被当前值=1的思路带偏了。然后调了1h没调过。首先通过打表可以发现<=n的质数在9500个。我们发现大于根号n部分的质数最多有一个因子,也就意味着在将小等根号n的质数筛完之后,剩下的只有大于根号n的质数本身,当然还有可能有特殊的数k和1.我们就可以先用不超过240个左右的询问把这个特殊数的小等于根号n部分的因子先搞出来。然后对其分类讨论。如果这个特殊数并没有小等根号n的因子。那么说明它是一个大等根号n的质数。但是我们不能对每个B进行一次操作再进行A,因为次数不够,很容易想到分块,每100个质数查询完查询一下剩余的数有多少,如果剩余的数不是刚好减去了100个,说明有一次删减失败了,再回去这100个数里查询哪个没有被删除就获得答案。如果这个特殊数有小等根号n的因子,那么我们其实对其B 1的限制就消失了,所以我们可以直接B πpi^ki(pi<=sqrt(n)),然后直接对每一个大于根号n的因子pi查询A pi*tans 如果=1说明是该特殊数就好了(就是在这一步想复杂了,想成了统计剩余数的个数结果算到自闭)。

  • 相关阅读:
    RobotFramework下的http接口自动化Get关键字的使用
    通过添加filter过滤器 彻底解决ajax 跨域问题
    TestLink和RedMine的集成
    SonarQube和Maven的集成
    RobotFramework下的http接口自动化Create Http Context关键字的使用
    正负数的源码 反码 补码 转
    SSM的,日常错误
    SSM的 日常错误 之 mybatis
    Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerException
    错误异常
  • 原文地址:https://www.cnblogs.com/ghostfly233/p/13660436.html
Copyright © 2011-2022 走看看