第十三届 ACM/CCPC 吉林省赛 J. Send Scores Problem
ACM/CCPC 历届真题 题解目录
Problem J. Send Scores Problem
Time Limit: 1000ms Memory Limit: 512MB
Description
Please calculate ⌊cos2((n−1)!+1nπ)⌋⌊\cos^2{(\frac{(n-1)!+1}{n}}π)⌋⌊cos2(n(n−1)!+1π)⌋
Input
First line contains an integer T (1 ≤ T ≤ 10310^3103) represents the number of test cases.
For each test case:
The first line contains an integer n (2 ≤ n ≤ 10910^9109) represents the number of grids the king needed.
Output
For each test case, output a line contains an integer represents the answer.
Sample
Input
3
3
4
5
Output
1
0
1
Hint
⌊x⌋ means the maximum integer not greater than x.
n! means 1 ∗ 2 ∗ … ∗ (n − 1) ∗ n.
题目大意:
输入一个整数n,求出公式的结果。
分析:
就是一道简单的数论题,用的是威尔逊定理。
首先,公式是cos2\cos^2cos2向下取整,那么结果只有两种可能,1或0(自己先思考一下为什么)。
我们都知道cos的范围是[-1, 1],那么cos2\cos^2cos2的范围就是[0, 1],向下取整之后,除了1以外,其他结果都是0。
很显然,得1的概率比得0的概率低很多的,所以我们可以先考虑一下什么时候表达式的值会得1。简单反推一下,有以下结果:
⌊cos2((n−1)!+1nπ)⌋=1⇒cos((n−1)!+1nπ)=1或−1⇒((n−1)!+1)%n=0⇒(n−1)!%n=−1⌊\cos^2{(\frac{(n-1)!+1}{n}}π)⌋ =1\\ \Rightarrow \cos{(\frac{(n-1)!+1}{n}}π) = 1或-1 \\ \Rightarrow ((n-1)!+1)\ \%\ n = 0 \\ \Rightarrow (n-1)!\ \%\ n = -1 ⌊cos2(n(n−1)!+1π)⌋=1⇒cos(n(n−1)!+1π)=1或−1⇒((n−1)!+1) % n=0⇒(n−1)! % n=−1
推到这里,想来该会的人也都会了,那就是威尔逊定理:最后的等式成立时,当且仅当n为质数。
PS:
这里说一些题外话。当时比赛的时候,我们还真就不知道这个定理。但这道题也不是不能做。
首先,10910^9109的阶乘暴力是一定超时的,但cos函数又一定是有规律的,何况平方向下取整只有1和0,且1的概率很小,也是没问题的。那么这道题就一定可以找出一个规律来。
所以,我们当时就写了一个暴力的函数,然后输出了n∈[2,100]n \in[2, 100]n∈[2,100]中所有结果为1的值n。输出结果为:2, 3, 5, 7, 11, 13, 17, ……很明显,n是质数!当时我和队友小明{豁然开朗.jpg}
当然,这只是一种取巧的方法,还是推荐要多学知识的。不过AC才是真理,谁能保证自己每个知识点都会?思路才是王道,它才能帮你克服一切难关解决问题。
代码如下:
#include <iostream>
using namespace std;int t, n;//判断num是否为素数
bool check(int num)
{for(int i = 2; i * i <= num; i++)if(num % i == 0) return false;return true;
}int main()
{scanf("%d", &t);while(t--){scanf("%d", &n);printf("%d\n", check(n) ? 1 : 0);}return 0;
}
第十三届 ACM/CCPC 吉林省赛 J. Send Scores Problem相关推荐
- 第十三届蓝桥杯模拟赛第二期JAVA组个人题解
第十三届蓝桥杯模拟赛第二期JAVA组个人题解 文章目录 第十三届蓝桥杯模拟赛第二期JAVA组个人题解 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目1 小蓝的I ...
- 2022年第十三届蓝桥杯省赛C/C++B组个人题解
2022年第十三届蓝桥杯省赛C/C++B组个人题解 试题 A: 九进制转十进制(数学) 试题 B: 顺子日期(语文) 试题 C: 刷题统计(模拟) [样例输入] [样例输出] 试题 D: 修剪灌木(找 ...
- 2022年十三届蓝桥杯国赛(C/C++大学B组)个人题解
2022年十三届蓝桥杯国赛(C/C++大学B组)个人题解 更新:成绩出来了,估分50分左右,最后拿了个国二,还差点到国一,有点出乎意料,挺满意了挺满意了. 去年国赛基本都是暴力,最后国三都没拿到(我是 ...
- 第十三届蓝桥杯模拟赛(第三期)试题与题解 C++
文章目录 第十三届蓝桥杯模拟赛(第三期)试题与题解 1.试题A 题解:数制转换 2.试题B 题解:枚举 3.试题C 题解:枚举 4.试题D 题解:最小生成树 5.试题E 方法一:暴力求和 方法二:一维 ...
- 【第十三届蓝桥杯省赛B组】统计子矩阵 (枚举前缀和+双指针)
AcWing 4405. 统计子矩阵 来源:第十三届蓝桥杯省赛C++B组 给定一个 N×MN×M 的矩阵 AA,请你统计有多少个子矩阵 (最小 1×11×1,最大 N×MN×M) 满足子矩阵中所有数的 ...
- 2020 ccpc 吉林省赛 H
2020 ccpc 吉林省赛 H 题意: 给一组数 a i a_i ai,求 ∑ i = 1 n ∑ j = 1 n [ g c d ( a i , a j ) = d ] \sum\limits_ ...
- 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解
第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...
- 2022 第十三届蓝桥杯省赛 C/C++ B组 试题与个人题解
2022 第十三届蓝桥杯省赛 C/C++ B组 试题与个人题解 试题A: 九进制转十进制 本题总分:5分 [问题描述] 九进制正整数 (2022), 转换成十进制等于多少? [答案提交] 这是一道结果 ...
- 【蓝桥杯总决赛】第十三届蓝桥杯省赛C/C++B组个人题解
2022年第十三届蓝桥杯省赛C/C++B组个人题解 试题 A: 九进制转十进制(数学) 试题 B: 顺子日期(语文) 试题 C: 刷题统计(模拟) [样例输入] [样例输出] 试题 D: 修剪灌木(找 ...
最新文章
- python获取精彩视频_python获取莫视频网站视频
- JavaScript倒计时
- App推广中如何寻找200个以上渠道
- Oracle备份恢复之逻辑备份
- oracle 默认 服务器,Oracle的默认用户密码
- java中套接字,如何在java中获得一个开放的套接字?
- 基础算法 —— 高精度计算 —— 高精度除法
- 商汤使用AutoML设计Loss函数,全面超越人工设计
- 树莓派2 安装linux系统安装教程,安装Ubuntu MATE 15.04 for 树莓派2
- datetime.strptime格式转换报错ValueError
- Java字符编码转换过程说明
- php 编译 sass,如何在Symfony 3中使用纯PHP编译SASS(scss)
- Dijkstra算法C++实现
- 被封杀4年的看片神器终于解禁了,要跟百度网盘抢生意?
- Excel获取目标时间点/日期的方法
- 如何用电脑模拟手机屏幕滑动 Total Control帮您实现
- 假如生活欺骗了你……——网上答疑(14)
- Google地图获取城市名称
- 天工代码生成器标准版正式发布
- java添加文件到压缩包_JAVA-将内容写入文件并导出到压缩包
热门文章
- ArcGIS Engine空间分析之拓扑分析的实现
- 计算机科学计数法的定义,科学计数法的定义和运算规则
- Ubuntu下安装配置TAU分析mpich和openmp程序性能
- video_player: Could not find com.google.android.exoplayer:exoplayer-core:2.x.x
- 游戏开发中的数学、向量的应用
- Ocrking图片识别之Java实现本地验证码的识别
- 简单科普私钥、地址、助记词、Keystore的区别
- windows10家庭版安装DockerToolbox
- Telegram与QQ消息互转
- 年度最受欢迎的Python的书籍,还不来看看!