QOJ5090 妙妙题

news/2024/11/16 6:21:25/文章来源:https://www.cnblogs.com/zyxawa/p/18328062

将白色看作 \(0\),黑色看作 \(1\),并将所有人等距离排在圆上,若知道所有人颜色的异或和,就可以根据自己看见的颜色集合判断自己的颜色,且将圆等切为两半一定有少的一边的人数 \(\ge \lfloor \frac{n-1}{2} \rfloor\),但若圆两边的黑点关于切线翻转对称(如下图),则会出现看到颜色相同的两人策略不同,而不满足这是确定性策略

翻转对称

\(\vec{v}\) 表示所有黑点所在位置的矢量和并将其认为是切线,即 \(\vec{v}\) 逆时针左侧的点认为异或和为 \(1\),右侧的点认为异或和为 \(0\),那么两个关于切线翻转对称的黑点的矢量和将会抵消,若 \(\vec{v} \neq \vec{0}\) 则一定满足条件,否则若第 \(i\) 个人看到的黑点矢量和 \(\vec{v'}\) 与自己共线则猜黑色,否则猜白色

实现时记当前这个人在 \((1,0)\),记 \(s=\sum\limits_{i=0}^{n-2} a_i\)\(x=\sum\limits_{i=0}^{n-2} a_i \cos(\dfrac{2\pi(i+1)}{n})\)\(y=\sum\limits_{i=0}^{n-2} a_i \sin(\dfrac{2\pi(i+1)}{n})\),那么策略为 \(\begin{cases} 0,x=y=0\\ 1,x\neq0 \wedge y=0\\ (s+1) \text{ mod } 2,y > 0\\ s \text{ mod } 2,y< 0\\ \end{cases}\)

#include<bits/stdc++.h>
#include"tmp.h"
using namespace std;
const double pi=acos(-1),eps=1e-8;
double s[65],c[65];
int n;
void init(int m,bool t,int p){n=m;for(int i=1;i<=n;i++) s[i]=sin(2*pi*i/n),c[i]=cos(2*pi*i/n);
}
bool guess(unsigned long long a,int w){double x=0,y=0;int m=0;for(int i=1;i<n;i++) if(a>>(i-1)&1) x+=c[i],y+=s[i],m^=1;if(fabs(x)<eps&&fabs(y)<eps) return 0;else if(fabs(y)<eps) return 1;else return (y>0)^m;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772973.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulfocus靶场搭建以及镜像管理界面没有镜像可以拉取的解决办法

Vulfocus靶场搭建 1.拉取vulfocue镜像 docker pull vulfocus/vulfocus:latest拉取成功2.开启靶场 首先使用ifconfig查看一下虚拟机的IP,发现为x.x.x.x 然后使用物理机去ping一下这个IP地址看看是否能ping通 若能ping通则继续下面的操作 生成docker容器 docker create -p 80:80…

BUUCTF 5.level0

很简单的一道栈溢出的题(不知道为啥解题人数却比前几个少) 直接开干:看不出啥来保护只开了NX,我们看一下IDA很明了的一道题,直接秒 exp:flag:

mysql 关于幻读

前言 什么是幻读?幻读这个概念产生是因为事物隔离级别可重复读需要解决的一个问题。 可重复读,顾名思义,就是一个事物中多次读取的结果是一致的。 那其中就包含两个需要解决的问题:虚读: 对同一行数据,每次读取的不一致。具体表现为T1读取某一数据后,当T2进行了修改,然后…

冻鳗蔓延设在MC游玩上的一些解决方案(以当期Modpacks Infinte Infinity为例,并拓展)

本文介绍了基于OPL联机工具和PCL2的LittleSkin登录来实现MC联机的操作方法文章组成 一、前言 二、游玩须知 三、Mod 解决方案 四、联机解决方案 五、拓展 一、前言 关于MC一时起兴,然后大部分人不知道怎么搞我们正在玩的模组,所以写这样一则博客来记录本期 MC 游玩的一些技术…

BUUCTF 5.pwn1_sctf_2016

拿到题目首先先运行。我们发现他是将我们输入的重新输出出来,但是第二次运行时,我输入超长字符串后,仅仅只是输出了一部分,所以我们可以猜测程序中应该有检测长度的部分,我们再检查一下保护机制。我们发现仅仅只是开了一个nx保护,那么我们直接看IDA我们发现主函数中仅仅只…

leetcode-6

题目: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 推导:代码:class Solution { public:string convert(string s, int numRows) {if (numRows < 2) {return s;}vector<string> rows(numRows);int i = 0, flag = -1;for (…

全网比较好的 Markdown 教程

这应该是全网比较好的 Markdown 入门教程了吧(确信)。使用 Markdown 也有七八年了,一直没有写相关的教程,现在就来系统地写一写。这应该是全网比较好的 Markdown 入门教程了吧(确信)。 使用 Markdown 也有七八年了,一直没有写相关的教程,现在就来系统地写一写。 ‍ ‍ …

布客社区未来规划 202407

一、翻译 这个月FreeLearning系列教程会完全发布完毕 https://wizard.blog.csdn.net/ 下半年安排如下:8~9月:DSAI库源码解析 10月:VKDoc 11月:iBooker 12月:杂项 25.1~2月:GeekDoc 25.3月之后:题库或者问答没错,为了博客能够持续更新,所有翻译结束后我们将搜集考试和竞…

Scratch作品-巴黎2024奥运会

​ 《Scratch作品-巴黎2024奥运会》是一款以巴黎2024年奥运会为主题的互动作品,专为儿童和青少年设计。通过Scratch编程语言,这个作品生动地再现了奥运会的精彩瞬间,结合了动画、声音和互动元素,让用户仿佛置身于巴黎的奥运赛场。玩家可以参与各种虚拟的奥运项目,学习奥运…

Linux工作原理11 Shell脚本

11 shell脚本 如果你能在 shell 中输入命令,你就能编写 shell 脚本。shell 脚本(也称为 Bourne shell 脚本)是写在文件中的一系列命令;shell 会从文件中读取这些命令,就像在终端中输入命令一样。 11.1 shell脚本基础 Bourne shell 脚本一般以下面一行开始,表示 /bin/sh 程…

Leaf

Leaf这个名字是来自德国哲学家、数学家莱布尼茨的一句话:There are no two identical leaves in the world > “世界上没有两片相同的树叶”综合对比上述几种方案,每种方案都不完全符合我们的要求。所以Leaf分别在上述第二种和第三种方案上做了相应的优化,实现了Leaf-seg…