zoukankan      html  css  js  c++  java
  • [CF]Round 516

    A Make a triangle!

    题意:给定三根线段,问最少要延长多少才能拼成一个三角形。

    数学题。

    B Equations of Mathematical Magic

    题意:求$a - (a oplus b)-x=0 $的非负整数解的个数。

    打表发现是(a)在二进制下(1)的数量。

    C Oh Those Palindromes

    题意:求字符串(S)重新排列后的回文子串的最大数量。

    猜想一样的放在一起会最多,然后就对了。

    D Labyrinth

    题意:给定一个迷宫,有一些障碍,最多只能向左(x)次,向右(y)次,问能到几个点。

    就是一个bfs。注意如果到达一个点的时候比上一次向左或向右的次数更多的话,就要继续入队,但不重复计算答案我就在这被hack了

    E Dwarves, Hats and Extrasensory Abilities

    题意:交互题,每次输出一个点的坐标,然后读入这个点的坐标的颜色(黑或白),最后输出一条线使得同色的点在这条线的一侧。

    我一开始想的是在一个圆弧上二分极角,保证同色的连续就行了,但是,这样的话精度会爆(30次二分)。

    UPD:其实不用在圆弧上,直接在一条直线上二分就行,保证直线一边是黑一边是白就可以了。

    F Candies for Children

    题意:有(n)个人围成一个环,从(l)开始,每个人拿一个或两个糖,转若干圈后,到(r)停止,一共消耗了(k)个糖。问最多有多少个人会拿两个糖。

    我是转化成求满足(kmod (n+y) le y)(kmod (n+y)le (r-l)mod n +1)的最大的(y)。然后就不会了2333

    这个题可以分类讨论,用两种不同的方法做(先假定最后一个人不是“sweet tooth”或者是且吃两个糖)

    第一种解法是(O(n^2))的,我们把这个圆分成两部分,一部分是(l..r)范围的,称为(X),剩余的部分称为(Y)(X)(Y)多吃一次糖。我们可以枚举(X),(Y)中有多少个"sweet tooth",然后验证是否合法。

    第二种解法是(O(k/n))的,我们先假设转的圈数(t>0),我们发现,(X)中的人要么贡献(t+1),要么贡献(2t+2)(Y)中的人要么贡献(t),要么贡献(2t),我们先假设没有"sweet tooth",然后就会有一个方程((t+1)a+tb = k-t-|X|) 枚举圈数(t)然后求最大的(a+b)就行了。

  • 相关阅读:
    懒人模式Singleton模式Meyers版本号
    欢迎CSDN-markdown编辑
    协同编辑多人word一个小技巧文件
    72_leetcode_Construct Binary Tree from Preorder and Inorder Traversal
    2015第44周五Java集群技术(转)
    linux远程管理工具
    2015第44周三提升个人价值意识
    2015第44周二
    2015第44周一
    2015第43周日
  • 原文地址:https://www.cnblogs.com/wyxwyx/p/cfr516.html
Copyright © 2011-2022 走看看