博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#584. 天天去哪吃
阅读量:5291 次
发布时间:2019-06-14

本文共 1585 字,大约阅读时间需要 5 分钟。

【题目描述】:

吃饭是自古以来令人头疼的问题,最后天天决定写一个程序来替他做决定。

现在已知有n个餐厅,编号从0到n-1。记ai表示第i天决定吃什么,令

t[i][0]=(A×a[i-1]+B×a[i-2])%n,(其实就是一个随机数)

t[i][j]=(t[i][j-1]+1)%n,j≥1

天天不想去最近吃过的餐厅,所以如果在前n/2(整除)天中吃过某个餐厅,就不想再去这个餐厅。所以我们要找一个最小的k,使得t[i][k]不为前n/2(整除)天去过的餐厅。那么天天第i天就想去t[i][k]餐厅。

现在已知a1和a2,想让你输出a3…am,即接下来m-2天,天天会去哪里吃饭。

【输入描述】:

第一行两个正整数n和m。其中2≤n≤10^5,3≤m≤2×10^5;

第二行两个整数,分别为A和B。其中0≤A,B≤10^9;

第三行两个整数,为a[1]和a[2]。0≤a[1],a[2]<n,且a[1]≠a[2];

【输出描述】:

一行m-2个整数,表示接下来m-2天里,天天去哪里吃饭。

【样例输入】:

3 47 112 0

【样例输出】:

1 2

【样例说明】:

t[3][0]=(7×a[2]+11×a[1])%n=1,前面n/2=1天没有出现,所以第三天去1号餐厅。

t[4][0]=1,前面1天已经出现,所以第四天去t[4][1]=2号餐厅。

【时间限制、数据范围及描述】:

时间:1s 空间:256M

对于60% 的数据:2≤n,m≤10^4;

对于100% 的数据:2≤n≤10^5,3≤m≤2×10^5;且保证A,B为随机的两个素数,所以可以认为t[i][0]为一个随机数。

 

 

#include
#include
#include
#include
#include
#include
using namespace std;long long n,m,A,B,a[200610],t,f[200610];long long read(){ long long a=0,b=1; char ch=getchar(); while((ch<48||ch>57)&&ch!='-'){ ch=getchar(); } if(ch=='-'){ b=-1; ch=getchar(); } while(ch<48||ch>57){ ch=getchar(); } while(ch>47&&ch<58){ a=a*10+ch-48; ch=getchar(); } return a*b;}int main(){ n=read();m=read(),A=read();B=read(),a[1]=read(),a[2]=read(); memset(f,0,sizeof(f)); f[a[1]]=1,f[a[2]]=1; for(long long i=3;i<=m;i++){ if(i>n/2){ long long s=i-n/2-1; if(i==3&&s>1)f[a[s-1]]=0; if(s>0)f[a[s]]=0; } t=(a[i-1]*A+a[i-2]*B)%n; while(f[t]==1)t=(t+1)%n; a[i]=t;f[t]=1; } for(long long i=3;i<=m;i++){ printf("%lld ",a[i]); } return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11538177.html

你可能感兴趣的文章
洛谷 [FJOI2014]最短路径树问题 解题报告
查看>>
欲望都市游戏设计 背景图层和UI图层的设计
查看>>
2-2 groovy基础知识-理论介绍
查看>>
Null Object Design Pattern (Python recipe)
查看>>
bootstrap学习笔记(6)
查看>>
leetcode : Valid Sudoku
查看>>
浅谈-Lambda
查看>>
storm 批处理(窗口)
查看>>
洛谷 P1052 过河
查看>>
Python3 从零单排28_线程队列&进程池&线程池
查看>>
java resources 红叉 Cannot change version of project facet Dynamic Web Module to 2.5
查看>>
阿里云 CentOS7.2 配置FTP+Node.js环境
查看>>
HttpWebRequest 发送简单参数
查看>>
Eclipse启动JVM机制
查看>>
一年的第几天
查看>>
leetcode 223: Rectangle Area
查看>>
Blender插件编写指南
查看>>
二次重建基本完成辣!
查看>>
PHP与Linux进程间的通信
查看>>
【长期更新】坑点合集
查看>>