Codeforces Round #538 (Div. 2) E 随机数生成
https://codeforces.com/contest/1114/problem/E
题意
交互题,需要去猜一个乱序的等差数列的首项和公差,你能问两种问题
1. 数列中有没有数比x大
2. 数列的第i项是什么
最多只能问60次
题解
- 首先用第一种问题+二分问出数列最大的数是多少,最多二十次
- 然后用第二种问题尽可能分散的询问第i项,然后将问出的数组排序,对相邻两个数的差求gcd
随机数生成链接
https://codeforces.com/blog/entry/61587
https://codeforces.com/blog/entry/61675
#include<bits/stdc++.h>
#define M 1000000
#define P 23333
#define X 23
#define ll long long
using namespace std;
int vi[M+5];
ll n,cnt,x,sz,a[100],l,r,mid,gcd,i,mul;
int main(){
cin>>n;
mul+=P;x=((ll)rand()*X%n+mul)%n+1;vi[x]=1;
cout<<"? "<<x<<endl;cnt++;cout.flush();
cin>>a[sz++];
l=a[0];r=1e9;
while(l<r){
mid=(l+r)/2;
cout<<"> "<<mid<<endl;cnt++;cout.flush();
cin>>x;
if(x)l=mid+1;
else r=mid;
}
for(;cnt<=60;cnt++){
if(sz==n)break;
mul+=P;
x=((ll)rand()*X%n+mul)%n+1;
while(vi[x]){
mul+=P;
x=((ll)rand()*X%n+mul)%n+1;
}
vi[x]=1;
cout<<"? "<<x<<endl;cnt++;cout.flush();
cin>>a[sz++];
}
sort(a,a+sz);
gcd=a[1]-a[0];
for(i=2;i<sz;i++){
gcd=__gcd(gcd,a[i]-a[i-1]);
}
cout<<"! "<<l-(n-1)*gcd<<" "<<gcd<<endl;
cout.flush();
}
Codeforces Round #538 (Div. 2) E 随机数生成的更多相关文章
- Codeforces Round #538 (Div. 2) (A-E题解)
Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...
- Codeforces Round #538 (Div. 2) (CF1114)
Codeforces Round #538 (Div. 2) (CF1114) 今天昨天晚上的cf打的非常惨(仅代表淮中最低水平 先是一路缓慢地才A掉B,C,然后就开始杠D.于是写出了一个O( ...
- Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)
题目:http://codeforces.com/problemset/problem/1114/C 题意:给你n,m,让你求n!换算成m进制的末尾0的个数是多少(1<n<1e18 ...
- Codeforces Round #538 (Div. 2)
目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...
- Codeforces Round #538 (Div. 2) F 欧拉函数 + 区间修改线段树
https://codeforces.com/contest/1114/problem/F 欧拉函数 + 区间更新线段树 题意 对一个序列(n<=4e5,a[i]<=300)两种操作: 1 ...
- Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零
https://codeforces.com/contest/1114/problem/C 题意 给你一个数n(<=1e8),要你求出n!在b进制下的后缀零个数(b<=1e12) 题解 a ...
- Codeforces Round #538 (Div. 2) D. Flood Fill 【区间dp || LPS (最长回文序列)】
任意门:http://codeforces.com/contest/1114/problem/D D. Flood Fill time limit per test 2 seconds memory ...
- Codeforces Round #538 (Div. 2) CTrailing Loves (or L'oeufs?)
这题明白的意思就是求n!在b进制下的后缀零的个数. 即最大的n!%(b^k)==0的k的值.我们需要将如果要构成b这个数,肯定是由一个个质因子相乘得到的.我们只需要求出b的质因子,然后分析n!中可以组 ...
- Codeforces Round #538 (Div. 2)D(区间DP,思维)
#include<bits/stdc++.h>using namespace std;int a[5007];int dp[5007][5007];int main(){ int n ...
随机推荐
- ES3之cookie
一 cookie的作用域由文档源(domain)和文档路径(path)决定. 当前页面的脚本只能操作:当前源的当前路径的cookie.当前源的父路径的cookie. 向服务器发送请求时,请求头(Req ...
- TZOJ 1800 Martian Mining(二维dp)
描述 The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site of the A ...
- ajax中的contendType和dataType知识点梳理
在ajax中有2个参数比较重要,之前一直没有搞清楚,下面我们开始梳理一下 1.contentType字段:这个字段的意思,ajax发送给后端的数据是什么类型 如果在ajax中不指定这个属性,则默认是u ...
- java 基础之--反射详解
java 反射绝大部分都位于 java.lang.reflect package 中:常用的类就是: 1.class类:代表一个类 2.field类:代表类的成员变量 3.method:代表类的方法 ...
- ret和retf
ret指令用栈中的数据,修改IP的内容,从而实现近转移; retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移. CPU执行ret指令时,进行下面两步操作: (IP) = ((ss)*16+ ...
- js继承的几种类型
首先提供构造函数 1. 构造函数实现继承 原理:改变函数上下文实现继承(call,apply,return,bind) return {}/function(){} 如果返回值是对象 那么this ...
- vm参数配置的理解
-denv=dev表示将服务器的级别 设置为开发环境 所有错误的内容都会打印在控制台上 //The-Denv = dev statement creates a system property nam ...
- 线特征---LBD算法(三)
上一节主要是介绍LSD算法理论,这节主要是介绍LBD算法. 参考文章:An efficient and robust line segment matching approach based on L ...
- React-router4 第二篇url-params url参数
官方文档 以下代码均来自于官方文档 上来一步走 import React from 'react' import { BrowserRouter as Router, Route, Link } fr ...
- JavaScript DOM操作浅谈
1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...