链接: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赛前集训营-普及组(第七场)的更多相关文章

  1. 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告

    目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...

  2. [牛客网NOIP赛前集训营-普及组(第二场)]D-合法括号序列

    链接:https://www.nowcoder.com/acm/contest/165/D来源:牛客网 合法括号序列 键盘上有左括号(,右括号),和退格键-,共三个键. 牛牛希望按键n次,使得输入的字 ...

  3. 牛客网NOIP赛前集训营-普及组(第一场)

    前三题略 T4: 题目描述 小A有n个长度都是L的字符串.这些字符串只包含前8个小写字符,'a'~'h'.但这些字符串非常的混乱,它们几乎长得互不相同.小A想通过一些规则,让它们长得尽可能相同.小A现 ...

  4. Nowcoder | [题解-N165]牛客网NOIP赛前集训营-普及组(第二场)

    啊...表示一大早还没睡醒就开始打比赛(开始前一分钟的我还在桌子上趴着休眠)...表示题目思路清奇(尤其C题)...但是我还是太蒻了...\(D\)题暴力都没打...题解正式开始之前先\(\%\)一下 ...

  5. 牛客网NOIP赛前集训营-普及组(第一场)C 括号

    括号 思路: dp 状态:dp[i][j]表示到i位置为止未匹配的 '(' 个数为j的方案数 状态转移: 如果s[i] == '(' dp[i][j] = dp[i-1][j] + dp[i-1][j ...

  6. 牛客网NOIP赛前集训营-普及组(第二场)

    T1 牛牛刚学习了输入输出,他遇到了一道这样的题目. 输入2个整数a和b 保证输入的a和b在long long范围之内,即满足 -9223372036854775808 <= a, b < ...

  7. 牛客网NOIP赛前集训营-提高组(第二场)A 方差

    链接:https://www.nowcoder.com/acm/contest/173/A来源:牛客网 题目描述 一个长度为 m 的序列 b[1...m] ,我们定义它的方差为 ,其中  表示序列的平 ...

  8. [牛客网NOIP赛前集训营-提高组(第一场)]C.保护

    链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...

  9. 牛客网NOIP赛前集训营-提高组(第一场)

    牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l ...

随机推荐

  1. java-----Long转换为 int , string

    int: 1.调用intValue()方法 long ll = 300000; int ii= new Long(ll).intValue(); 2.先把long转换成字符串String,然后在转行成 ...

  2. python代码自动补全

    牛逼了!Python代码补全利器,提高效率告别996! Python之禅 Python之禅 微信号 VTtalk 功能介绍 人生苦短,我用Python,这里是一名老程序员分享Python技术的地方,欢 ...

  3. 通过网络socket获取对方 ip 和port

    int getpeername(int s, struct sockaddr *name, socklen_t *namelen);描述获取socket的对方地址struct sockaddr_in ...

  4. storm集群的安装

    storm图解 storm的基本概念 Topologies:拓扑,也俗称一个任务 Spoults:拓扑的消息源 Bolts:拓扑的处理逻辑单元 tuple:消息元组,在Spoults和Bolts传递数 ...

  5. Delphi中绘制圆角矩形的窗体

    制作圆角矩形的窗体: 01.procedure TPortForm.FormCreate(Sender: Tobject); 02.var hr :thandle; 03.begin 04.hr:=c ...

  6. USACO 06JAN 牛的舞会 洛谷2863

    题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...

  7. NOIp2018集训test-9-2(am)

    一场讲述谁比谁更傻逼的普及组比赛,证明了 1.老张是魔鬼(为什么有这么多套普及组题??) 2.我最傻逼 第 1 题 谜题 判断1~99哪些数翻转后合法,找到最长的连续合法段的长度,为4,所以n< ...

  8. NX二次开发-UFUN查询对象的类型和子类型UF_OBJ_ask_type_and_subtype

    NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...

  9. Qt---QFtp上传、下载二进制文件

    #include "mainwindow.h" #include "ui_mainwindow.h" #include <QFtp> #includ ...

  10. CVE-2019-0708简单复现

    各文件对应位置 rdp.rb -> /usr/share/metasploit-framework/lib/msf/core/exploit/rdp.rb rdp_scanner.rb -> ...