zoukankan      html  css  js  c++  java
  • 【总结氵】2020.10.17 A

    T1:
    有N个瓶子,每个瓶子中有ai颗糖,A与B每次可选择将ai变为ai+1或k*ai,要求操作后数量不得超过bi
    求先后手必胜
    想起前两天一道结论型的博弈题,当时恶补了一下SG函数
    当然对今天的解题提供的帮助仅限打表
    观察了一阵子没什么想法,弃掉了
    没看到子任务数据范围,放过了bi<ai*ki的8分
    后来发现可以找规律
    将n/k+1~n分成一段,(n/k)/k+1~n/k分成一段·····
    k为奇数时,每段最多一个2,且必定出现在结尾两个数中,倒数第三个数开始与非2的那个数相反,然后0/1循环
    为偶数时,每段有且仅有两种数,并循环
    可以用三(2)个数表示一段数,然后递归即可,每组都是log的
    数学归纳法应该可以证明,稍微想了想偶数的情况是很好证的
    T2:
    给出参数x%,若第一次没暴击,第二次概率加倍,第i次是第一次概率i倍,100%以上时必定暴击,暴击后概率重置
    求砍了10^1000000刀后期望暴击刀数除以10^1000000的结果,误差不超过0.01
    手算了一下三刀与四刀的期望差,发觉差值还挺大,估计在n足够大后会变得很小
    然而并没有去打暴力
    赛后得知,大约10^6次后差就变得很小了,直接以此为答案,据peppa pig同学的说法,保留两位轻松过
    可以用频率估计概率,算出期望多少刀暴击一次后,设此为ans,答案显然为1/ans
    由于x为正整数,不超过100,很快可以得出答案
    恐怕是最水的一题了
    T3:
    给出n个复数,每次区间乘或修改,或查询区间有多少个质数,复数形式a+bi
    若b为0,a在±5000内,超过此的数一定为两数相乘,则不可能为质数
    可以只记录有可能为质数的数,根据模长辐角与一些奇妙的性质(不会),将一些操作转化为区间赋0,记录一些小标记,即可用线段树解决
    我觉得这应该看得出来我还没搞懂这道题
    T4:
    有一个 n × n 的棋盘,初始有些地方有棋子。每次行动时,需要在棋盘上找到一个 k × k 的正方形,使得上面没有任何一个棋子。如果无法找到,
    则她就输掉了这个游戏。然后,她需要在棋盘任意一个没有棋子的地方放上一个棋子,不需要保证这个棋子在 k × k 的正方形中。小 c 先手,问谁有必胜策略
    假设初始时没有正方形,则后手胜
    若初始时有正方形,但没有两个或以上的不相交的正方形,则先手胜
    若初始时有至少两个不相交的正方形,则依据空格子数可以推先后手必胜
    证明显然,谁先使局上只剩一个正方形,谁就输了
    前缀和处理,判断一下是否有至少两个正方形即可

  • 相关阅读:
    OpenVINO Model Server的服务化部署——step3(django服务构建)
    (5)名称空间 namespace 和 using 声明
    (4)#include 指令
    (3)注释
    (2)简单的程序
    (1)Hello World
    javaScript 错误学习 -- throw、try 、catch和 finally
    js 如何在数字前面自动补零,生成序列号、单据号
    vs2015项目运行出现“无法启动IIS Express Web服务器”,如何解决
    Sql Server 2008 如何将数据表导出Excel文件?
  • 原文地址:https://www.cnblogs.com/namevastblog/p/13831748.html
Copyright © 2011-2022 走看看