牛客网NOIP赛前集训营-普及组(第七场)
链接:C
来源:牛客网
牛牛的同学给牛牛表演了一个读心术:牛牛先任意选定一个非负整数,然后进行N次操作:每次操作前,假设牛牛当前的数是a,那么这个操作可能是a = a + x, 或者a = a * x, 或者a = a % x。N轮操作结束后,牛牛的同学成功猜出了牛牛最终的结果。牛牛觉得十分神奇,他现在把N个操作记录了下来,希望你帮忙验证一下这个读心术是不是一定会成功(既无论牛牛最开始选定的是什么数,最终的结果都是一样的)。
哇!这题可以乱搞!!!
然后我的乱搞就gg了TAT
然后正解也真的是乱搞,只是我搞丑了QAQ
显然最有用的是%,每次加完乘完后%一下下一个模数,至于最后一个模数后的数其实也没有什么用了
然后把1~100000暴力带进去试就行啦
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<ctime>
#include<cstring>
#define M 10000007
#define ULL unsigned long long
#define max(a,b) ((a)>(b)? (a):(b))
#define min(a,b) ((a)<(b)? (a):(b))
using namespace std;
ULL i,m,n,j,k,a[1000001][2],t,ans,b,c[100001], pre;
int main()
{
srand(time(0));
cin>>t;
for(;t;t--)
{
cin>>n;
pre=0;
for(i=1;i<=n;i++) cin>>a[i][0]>>a[i][1];
for(i=n;i>=1;i--)
{
if(a[i][0]==2) pre=a[i][1];
if(!pre) n--;
else c[i]=pre;
}
for(i=0,b=1;i<=10;i++)
{
ULL k=i;
for(j=1;j<=n;j++)
{
if(a[j][0]==0) k=k+a[j][1]%c[j];
if(a[j][0]==1) k=k*a[j][1]%c[j];
if(a[j][0]==2) k=k%a[j][1];
}
if(i==0) ans=k;
else if(ans!=k)
{
b=0;
break;
}
}
if(!b)
{
printf("NO\n");
continue;
}
for(i=0,b=1;i<=1000;i++)
{
ULL k=rand();
for(j=1;j<=n;j++)
{
if(a[j][0]==0) k=(k+a[j][1])%c[j];
if(a[j][0]==1) k=(k*a[j][1])%c[j];
if(a[j][0]==2) k=(k%a[j][1]);
}
if(ans!=k)
{
b=0;
break;
}
}
if(!b) printf("NO\n");
else printf("YES\n");
}
}
牛客网NOIP赛前集训营-普及组(第七场)的更多相关文章
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
- [牛客网NOIP赛前集训营-普及组(第二场)]D-合法括号序列
链接:https://www.nowcoder.com/acm/contest/165/D来源:牛客网 合法括号序列 键盘上有左括号(,右括号),和退格键-,共三个键. 牛牛希望按键n次,使得输入的字 ...
- 牛客网NOIP赛前集训营-普及组(第一场)
前三题略 T4: 题目描述 小A有n个长度都是L的字符串.这些字符串只包含前8个小写字符,'a'~'h'.但这些字符串非常的混乱,它们几乎长得互不相同.小A想通过一些规则,让它们长得尽可能相同.小A现 ...
- Nowcoder | [题解-N165]牛客网NOIP赛前集训营-普及组(第二场)
啊...表示一大早还没睡醒就开始打比赛(开始前一分钟的我还在桌子上趴着休眠)...表示题目思路清奇(尤其C题)...但是我还是太蒻了...\(D\)题暴力都没打...题解正式开始之前先\(\%\)一下 ...
- 牛客网NOIP赛前集训营-普及组(第一场)C 括号
括号 思路: dp 状态:dp[i][j]表示到i位置为止未匹配的 '(' 个数为j的方案数 状态转移: 如果s[i] == '(' dp[i][j] = dp[i-1][j] + dp[i-1][j ...
- 牛客网NOIP赛前集训营-普及组(第二场)
T1 牛牛刚学习了输入输出,他遇到了一道这样的题目. 输入2个整数a和b 保证输入的a和b在long long范围之内,即满足 -9223372036854775808 <= a, b < ...
- 牛客网NOIP赛前集训营-提高组(第二场)A 方差
链接:https://www.nowcoder.com/acm/contest/173/A来源:牛客网 题目描述 一个长度为 m 的序列 b[1...m] ,我们定义它的方差为 ,其中 表示序列的平 ...
- [牛客网NOIP赛前集训营-提高组(第一场)]C.保护
链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...
- 牛客网NOIP赛前集训营-提高组(第一场)
牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l ...
随机推荐
- Dart编程字符串
String数据类型表示一系列字符.Dart字符串是一系列UTF 16代码单元. Dart中的字符串值可以使用 单引号 或 双引号 或 三引号 表示.单行字符串使用单引号或双引号表示.三引号用于表示多 ...
- thinkphp url重写
可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:大理石平台精度等级 [ Apache ] httpd.conf配置文件中加载了mod_rewrite.so模块 Al ...
- linux源码安装python及pip和django
1安装编译工具 yum install zlib-devel bzip2-devel openssl-devel python-devel kernel-devel libffi-devel ncur ...
- 移动端图片轮播效果:depth模式总结
最近公司app改版首页增加了一处轮播图效果,但是跟普通的轮播效果不同,是类似于下图的样式,找了一些兼容移动端的插件以及jQuery源码,总结一下使用心得: 1:jquery源码:缺点是在手机端的滑动很 ...
- NX二次开发-UFUN关闭本地文本文档uc4540
1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_cfi.h> 5 #include <uf_ui.h> 6 7 us ...
- Spring-Security (学习记录一)--登录
目录 创建maven工程 1. 在pom.xml中加入相关jar包的配置 2.添加spring-security.xml文件 3.新建admin和user文件夹 4.配置web.xml文件 5.访问 ...
- Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)
概述 对于大多数第一次看spring源码的人来说,都会感觉不知从哪开始看起,因为spring项目源码由多个子项目组成,如spring-beans,spring-context,spring-core, ...
- python 17 函数基础(一)
http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...
- 7-MySQL高级-主从-1
1. 主从同步的定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制是异步进行的,所 ...
- css布局-瀑布流的实现
一.基本思路 1.先看最终的效果图: 2.实现原理:通过position:absolute(绝对定位)来定位每一个元素的位置,并且将当前列的高度记录下来方便下一个dom位置的计算 二.代码实现 1.版 ...