题意:现在有函数,每一项Xi=(A*X(i-1)+B)%C。现在给定N个函数以及K:X0,A,B,C。然你再每个函数选择一个数,使得其和最大,而且不被K整除。

X0,A,B,C<=1e3 ;K<=1e9

思路:因为C比较小,我们可以找到循环节(不一定是从0开始就循环了,所以用vis判定是否出现过)。然后保存每个函数的最大值,以及不同余的第二大值。

如果所有数的最大值不被K整除,那么最多有一个数被第二大替代

(一个简单题我居然wa了几发,所以还是写一下。

#include<bits/stdc++.h>
#define pii pair<int,int>
#define F first
#define S second
#define mp make_pair
using namespace std;
const int maxn=;
pii Mx[maxn][]; int pos[maxn];
int a[maxn],vis[maxn];
int main()
{
freopen("generators.in","r",stdin);
freopen("generators.out","w",stdout);
int N,K,i,j,x,A,B,C,ans=,tmp,L;
scanf("%d%d",&N,&K);
for(i=;i<=N;i++){
scanf("%d",&a[]); Mx[i][]=mp(a[],);
scanf("%d%d%d",&A,&B,&C);
vis[a[]]=; L=;
for(j=;;j++){
a[j]=(a[j-]*A+B)%C;
if(vis[a[j]]) break;
if(a[j]>Mx[i][].F) Mx[i][]=mp(a[j],j);
vis[a[j]]=; L++;
}
Mx[i][]=mp(-,-);
for(j=;j<=L;j++)
if(a[j]%K!=Mx[i][].F%K&&a[j]>Mx[i][].F) Mx[i][]=mp(a[j],j);
for(j=;j<=L;j++) vis[a[j]]=;
}
for(i=;i<=N;i++) ans+=Mx[i][].F;
for(i=;i<=N;i++) pos[i]=Mx[i][].S;
if(ans%K!=) printf("%d\n",ans);
else {
int change=,sum=-;
for(i=;i<=N;i++){
if(Mx[i][].F!=-){
if(ans-Mx[i][].F+Mx[i][].F>sum) sum=ans-Mx[i][].F+Mx[i][].F,change=i;
}
}
if(sum==-||sum%K==) { puts("-1"); return ; }
printf("%d\n",sum);
pos[change]=Mx[change][].S;
}
for(i=;i<=N;i++) printf("%d ",pos[i]);
return ;
}

Gym - 100851G:Generators(人尽皆知但是WA题)的更多相关文章

  1. Gym 100851G Generators (vector+鸽笼原理)

    Problem G. Generators Input file: generators.in Output file: generators.outLittle Roman is studying li ...

  2. (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题)

    layout: post title: (寒假开黑gym)2018 ACM-ICPC, Syrian Collegiate Programming Contest(爽题) author: " ...

  3. ACM: Gym 101047B Renzo and the palindromic decoration - 手速题

     Gym 101047B  Renzo and the palindromic decoration Time Limit:2000MS     Memory Limit:65536KB     64 ...

  4. 常让人误解的一道js小题

    一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...

  5. 牛客练习赛38 E 出题人的数组 2018ccpc桂林A题 贪心

    https://ac.nowcoder.com/acm/contest/358/E 题意: 出题人有两个数组,A,B,请你把两个数组归并起来使得cost=∑i∗ci 最小,归并要求原数组的数的顺序在新 ...

  6. Gym 100548A Built with Qinghuai and Ari Factor (水题)

    题意:给定 n 个数,问是不是全是3的倍数. 析:略. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") ...

  7. Gym - 101670H Go Northwest!(CTU Open Contest 2017 思维题+map)

    题目: Go Northwest! is a game usually played in the park main hall when occasional rainy weather disco ...

  8. K-query SPOJ - KQUERY 离线 线段树/树状数组 区间大于K的个数

    题意: 给一个数列,一些询问,问你区间$[l.r]$大于$K$的个数 题解: 又一个"人尽皆知傻逼题"? 我们用一个01序列表示当前询问时,该位置的数字是否对答案有贡献, 显然,对 ...

  9. HDU 3333 Turing Tree 离线 线段树/树状数组 区间求和单点修改

    题意: 给一个数列,一些询问,问你$[l,r]$之间不同的数字之和 题解: 11年多校的题,现在属于"人尽皆知傻逼题" 核心思想在于: 对于一个询问$[x,R]$ 无论$x$是什么 ...

随机推荐

  1. centos7.0 安转apache2.4

    安装apache2.4的需要安转apr和apr-util 包 APR和APR-util的下载地址 http://apache.fayea.com//apr/apr-1.6.2.tar.gzhttp:/ ...

  2. 基于SqlDependency的Asp.net数据缓存

    首先,确保目标数据库的is_broker_enabled已经enabled. SELECT name, is_broker_enabled FROM sys.databases 如果不是enabled ...

  3. 【BZOJ1061/3265】[Noi2008]志愿者招募/志愿者招募加强版 单纯形法

    [BZOJ1061][Noi2008]志愿者招募 Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募 ...

  4. PostMan的使用注意事项

    1json格式要设置头尾application/json 2body中raw的{"userName":"123","passWord":&q ...

  5. angularjs 中的iframe 标签 ng-src 路径 z-index 必须有position

    如果直接写路径到iframe标签里的ng-src中会出现报错: 解决方法: 1.ng里面有个属性是专门用来解决跨域问题的 $sce. 用法: $scope.someUrl = $sce.trustAs ...

  6. vim vimdiff diff 使用及命令

    vim: vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口. 之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦.用法::tabnew [++opt选项] [+cmd] 文件  ...

  7. Python:笔记(3)——面向对象编程

    Python:笔记(3)——面向对象编程 类和面向对象编程 1.类的创建 说明:和Java不同的是,我们不需要显示的说明类的字段属性,并且可以在后面动态的添加. 2.构造函数 构造函数的功能毋庸置疑, ...

  8. Yii2 提供可以用属性的方式去获取类的一个方法

    刚开始用 Yii 的小朋友可能对下面的写法非常疑惑: public function actionIndex() { $user = User::find()->where(['name'=&g ...

  9. 3.11课·········C#类

    String类:.Length 字符的长度,返回一个int类型的值 .Trim() 去掉开头以及结尾的空格.TrimStart() 去掉字符串开头的空格.TrimEnd() 去掉字符串后面的空格 .T ...

  10. java中接口的概念及使用(补充final修饰符的使用)

    接口 初期理解,可以是一个特殊的抽象类 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示 class 用于定义类 interface 用于定义接口 接口定义时,格式特点: 1.接口中常见的 ...