首页 > 其他分享 >4.6 模拟赛小记

4.6 模拟赛小记

时间:2023-04-06 23:22:20浏览次数:35  
标签:4.6 return cout void intt ans check 模拟 小记

小寄,嘿嘿,嘿嘿。

T1 猴子选大王

首先声明我是智障,然后本题时根据子任务分开解决。

对于第一个子任务,可以看一下 [luogu P8671 约瑟夫环](https://www.luogu.com.cn/problem/P8671),用 f 存当前所选个数下的答案下标,易推得公式 f[i] = (f[i - 1] + m) % i。

怎么推得?正难则反,不妨设想当环中只剩下一人时、剩下二人时.....刚开始时,分别能得到 f[1] = 0,f[2] = (f[1] + m) % 2, f[3] = (f[3] + m) % 3....f[i] = (f[i - 1] + m % i)。参考了本题其他题解。

对于第二个子任务,当 m = 1 时,不难得到最后一个即为答案。

对于第三个子任务,可以模拟进行规律寻找。答案即找到这个数二进制下最高位 1,该数与这个 2 的幂之差乘二加一。太抽象了,具体见代码,还是建议自己手动模拟。
```cpp
#include<bits/stdc++.h>
#define intt long long
using namespace std;
const intt N = 1e8 + 10;
intt n, m;
intt vis[N];
void did1()
{
intt sum = 0;
for(int i = 2; i <= n; i ++ ) sum = (sum + m) % i;
cout << sum + 1;
}
void did2() {cout << n;}
bool check(intt k)
{
intt low = k & -k;
if(low != k || k == 0) return 0;
return 1;
}
intt bpow(intt a, intt b)
{
intt ans = 1;
while(b)
{
if(b % 2) ans = ans * a;
a = a * a;
b /= 2;
}
return ans;
}
void did3()
{
if(check(n)) {cout << 1; return;}
if(check(n + 1)) {cout << n; return;}
intt i = 0, nn = n;
while(nn)
{
nn >>= 1;
i ++;
}
i --;
printf("%lld", (n - bpow(2, i)) * 2 + 1);
}
signed main()
{
scanf("%lld%lld", &n, &m);
if(n <= 10000000)
{
did1();
return 0;
}
if(m == 1)
{
did2();
return 0;
}
if(m == 2)
{
did3();
return 0;
}
}
```
T2 好人与坏人

还是和约瑟夫问题有关,在早期我甚至做过,居然不会写了,属实难绷。

 

标签:4.6,return,cout,void,intt,ans,check,模拟,小记
From: https://www.cnblogs.com/Moyyer-my/p/17294592.html

相关文章

  • day37(2023.4.6)
    1.数据结构简介 2. 线性结构线性结构 栈结构  栈的定义栈是一种只能从一端存取数据且遵循"后进先出(LIFO)"原则的线性存储结构。实现栈容器: 运行结果: 3.链表结构 4.实现单项链表  运行结果: 5.实现双向链表双向链表也叫双链表,是链表的一种......
  • 2023.4.6周四每日博客
    为了实现多表间相互的查询,今天学习的多表连接,我们都知道,在SSM框架中,我们在applicationContext.xml配置文件中添加数据源就可以实现数据库增删改查但是只能连接一个数据库,这个时候我们就要从spring提供的源码下手看看有没有有关数据源切换的方法,找到关键源码(AbstractRoutingDat......
  • 4.6软件工程学习总结
    今天开始执行前几天的想法,由于自己上学期欠下的太多,这个学期自己也确实是开始努力去学了,但一直学的感觉比较零散,基础不牢,没有一个功能相对来说比较完善的项目,开学测试的那个题目前端时间基本功能都可以实现,但在页面展示和功能上还有些漏洞。然后今天开始做app的个人作业,之前也......
  • 每日总结 4.6
    今天进行了安卓的补货操作,通过获取前台的数据,对数据进行update,从而达到补货的目的。packagecom.example.jjt;importandroidx.appcompat.app.AppCompatActivity;importandroid.app.VoiceInteractor;importandroid.os.Bundle;importandroid.view.View;importandroid.......
  • 游戏模拟——Position based dynamics
    目录Verlet积分基本积分方法Verlet算位置Verlet算速度PBD基于力的方法解碰撞过冲问题基于位置的方法解碰撞算法流程求解器借用的思想关于动量守恒约束投影简单约束举例计算机图形中动态系统模拟最流行的方法是基于力的。累积内部和外部力量,根据牛顿的第二个运动定律计算加速度......
  • 2023.4.6学习记录
    p15神经网络_卷积层importtorchimporttorchvisionfromtorchimportnnfromtorch.nnimportConv2dfromtorch.utils.dataimportDataLoaderfromtorch.utils.tensorboardimportSummaryWriter#准备测试集dataset=torchvision.datasets.CIFAR10("dataset",train=False,......
  • 2023.4.6每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • HTTP JSON接口模拟工具interfake的使用(模拟接口返回json数据)
    场景在与第三方系统进行模拟对接时,需要本地根据接口文档的示例json数据快速模拟出来接口进行调试用。Interfake官方github地址:https://github.com/basicallydan/interfakeInterfake能简便地创建虚假的HTTPAPI,只需简单几行代码就可以创建模拟JSON接口(使用命令行方式也可以......
  • 混沌工程之ChaosMesh使用之四模拟网络Duplicate包
    今天我们来玩一下ChaosMesh模拟网络duplicate包的情况。同时也要看一下对应用产生的直接影响。目标模拟网络重复包。配置yaml文件配置[root@s5ChaosMesh]#catnetwork-duplicate.yamlapiVersion:chaos-mesh.org/v1alpha1kind:NetworkChaosmetadata:name:network-duplica......
  • jmeter模拟多IP地址访问
    1.前言:今天一同事在压测时提到怎么用jmeter里虚拟多个ip来发送请求,我想了一下以前用LR时用过虚拟ip地址,jmeter还没有使用过。想着原理应该是相通的,既然LR都能支持的话,那Jmeter应该也是支持,于是就有了jmeter虚拟化IP地址的研究。在网上也查找了相应的资料,摸索参考着实践了一把,坑吃......