2016陕西省赛B
给定n个函数,其中 fi(x)=(ai∗bxi+ci)moddi f_i(x) = (a_i*b_i^x+c_i) \mod d_i
求对于每个函数最小的 x x,使得fif_i取到最小值
答案保证递增
其中 x x在[1,m][1,m]中, n,m<1e5 n,m, a,b,c,d<1e9 a,b,c,d


所以可以整体二分一下
由于答案已经保证递增了,所以就很简单
其实赛上想到了类似做法,但由于答案非严格递增
所以担心出现答案全相等的情况,把这种解法卡成 (n∗m) \mathcal{O}(n*m)的
后来赛后想了想,全相等的情况几乎不可能发生
因为随机数据的话,要搞出另一组数据答案等于某个值的概率是1/m
搞出 n组的概率就是 1/(n*m),几乎不可能

#pragma comment(linker, "/STACK:102400000,102400000")
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cctype>
#include <map>
#include <set>
#include <queue>
#include <bitset>
#include <string>
#include <complex>
using namespace std;
typedef pair<int,int> Pii;
typedef long long LL;
typedef unsigned long long ULL;
typedef double DBL;
typedef long double LDBL;
#define MST(a,b) memset(a,b,sizeof(a))
#define CLR(a) MST(a,0)
#define SQR(a) ((a)*(a))
#define PCUT puts("\n----------")
#define PRI(x) cout << #x << ":" << x << endl;const int maxn=1e5+10, INF=0x3f3f3f3f;
int N,M;
int A[maxn], B[maxn], C[maxn], D[maxn];
int ans[maxn];int Pow(int,int,int);
void solve(int,int,int,int);int main()
{#ifdef LOCALfreopen("in.txt", "r", stdin);
//  freopen("out.txt", "w", stdout);#endifint ck=0;while(~scanf("%d%d", &N, &M)){for(int i=1; i<=N; i++) scanf("%d%d%d%d", &A[i], &B[i], &C[i], &D[i]);solve(1,N,1,M);printf("Case #%d\n", ++ck);for(int i=1; i<=N; i++) printf("%d\n", ans[i]);}return 0;
}void solve(int l, int r, int vl, int vr)
{if(r<l) return;int mid = (l+r)>>1;int val = Pow(B[mid], vl-1, D[mid]);ans[mid] = vl-1;Pii res = {INF, ans[mid]};for(int i=vl; i<=vr; i++){val = 1LL*val*B[mid]%D[mid];res = min(res, {(1LL*A[mid]*val+C[mid])%D[mid], i});}ans[mid] = res.second;solve(l, mid-1, vl, ans[mid]);solve(mid+1, r, ans[mid], vr);
}int Pow(int x, int n, int p)
{int res=1;while(n){if(n&1) res = 1LL*res*x%p;x = 1LL*x*x%p;n>>=1;}return res;
}

[2016陕西省赛B] Rui and her functions相关推荐

  1. 2016陕西省赛 Rui and her functions

    2016陕西省赛 Rui and her functions 题目链接:http://oj.xjtuacm.com/contest/4/problem/35/ 题目大意:每组数据给定$n$和$m$,定 ...

  2. 2016陕西省省赛 ACM Rui and her functions B 二分

    Rui and her functions 发布时间: 2017年3月27日 15:45   最后更新: 2017年3月28日 12:43   时间限制: 10000ms   内存限制: 256M 描 ...

  3. xdu1068暨2013陕西省赛C题题解

    xdu1068暨2013陕西省赛C题题解 题意 知道两个数列M和F,每次从M中选择一个人,和从F中选择的一个人配对,结果是Mi*Fj,请问所有配对情况中第k大的情况是多少. 笺释 先对M和F从小到大排 ...

  4. 【2016浙江省赛:区间取模】E : Modulo Query | ZOJ - 3940

    2016浙江省赛:E 题 Modulo Query [难度] 4.5/104.5/104.5/10 据说是卡银题?感觉有点难 [题意] F(i,X)={XmodA1i=1F(i−1,X)modAi2≤ ...

  5. 数学建模之2016国赛A题程序(来源于cclplus)

    友情链接: (1)2016数学建模国赛A题程序(原创)作者cclplus https://blog.csdn.net/m0_37772174/article/details/80204533 也可以在 ...

  6. 2016陕西省ACM省赛 HE 字符串处理 删除注释

    HE 发布时间: 2017年3月27日 18:28   最后更新: 2017年3月27日 18:30   时间限制: 1000ms   内存限制: 256M 描述 "Hi there, my ...

  7. 2016网络安全***赛记录

    打了一天比赛.本来感受颇多,提笔却不知从哪说起,很多比赛时候的切身体验很难用文字来表达出来,就使用流水账的形式简单说下这次的比赛吧 . 2016CNcert网络年会&2016网络安全对抗赛是国 ...

  8. 陕西职称英语 计算机考试报名时间2016,2016陕西省渭南市职称英语考试报名时间...

    根据陕西人事考试网发布的<2016年度专业技术人员职称外语等级统一考试考务工作公告 (人考中心函[2015]62号) > 得知,2016年陕西铜川职称英语考试报名时间为2015年12月11 ...

  9. Hitcon 2016 Pwn赛题学习

    PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...

最新文章

  1. 数据结构与算法之递归系列
  2. python 完全面向对象_python 面向对象(一)
  3. springboot+vue的前后端分离与合并方案
  4. 点击按钮无法触发ajax_前端 | Ajax 入门与实战
  5. 科大讯飞语音识别demo
  6. 思科:企业数据中心技术产品采购放缓
  7. 用友NC的一些漏洞复现
  8. 计算机上怎么在表格输入分秒,“excel表格怎么输入角度“excel 表格中怎么输入分秒的符号...
  9. 纯HTML+CSS静态百度登录界面制作
  10. 呼吸灯效果html,css之呼吸灯效果
  11. 同局域网 手机访问本地服务器
  12. 一文带你了解什么是CDN
  13. 日子大不了就是有粥喝粥,有菜吃菜
  14. 如何用GameMakerStudio开发基于物理引擎的平台游戏 | Lynda教程 中文字幕
  15. 神经网络中单层神经元表示逻辑运算
  16. JWT手动签发| 自动签发
  17. labview在不同VI间传递波形(全局变量)
  18. /dev/sdxx is apparently in use by the system; will not make a filesystem here! 解决方法
  19. WebGL入门(二十)-三维视图通过透视投影矩阵创建远小近大的两排三角形
  20. unity 完美像素_完美风暴过后– Unity Hack Week XII

热门文章

  1. fastjson忽略JSONField
  2. QT,QT/E,Qtopia,qt creator的联系与区别
  3. sspanel php,SSPanel-Uim 前端更新过程(20190812)
  4. node.js+vue鲜花销售网站
  5. 对CSDN新个人空间的看法
  6. 熟悉python中的tkinter图形包--(写一个参数计算器)
  7. Proxmark3介绍
  8. 推荐系统之位置敏感的评价指标--MAP和NDCG
  9. ffmpeg php裁剪上传视频教程,经验秘籍:ffmpeg超快速简单的视频批量剪切裁剪工具教程...
  10. linux 命令 mpstat,linux mpstat命令