Educational Codeforces Round 63 (Rated for Div. 2) E 带模高斯消元
https://codeforces.com/contest/1155/problem/E
题意
\(f(x)=a_0+a_1x+a_2x^2+...+a_kx^k,k \leq 10,0 \leq a_i < 10^6+3\),每次可以询问一个x,返回\(f(x)mod(10^6+3)\),50次询问以内需要找到x使得 \(f(x) \equiv 0 mod(10^6+3)\)
题解
- 现未知\(a_0,a_1,...,a_k\),一共k+1个未知数,需要k+1个方程来解,因此只需要询问k+1次即可
- 将x看成系数,\(a_0,a_1,...,a_k\)当成未知数,带模高斯消元即可
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll P=1e6+3;
ll a[15][15],b[15];
int ask(int i){
printf("? %d\n",i);
fflush(stdout);
int x;scanf("%d",&x);
return x;
}
ll inv(ll bs){
ll ans=1,x=P-2;
while(x){
if(x&1)ans=ans*bs%P;
bs=bs*bs%P;
x>>=1;
}
return ans;
}
void gao(){
for(int i=0;i<=10;i++){
for(int j=i+1;j<=10;j++){
ll rate=a[j][i]*inv(a[i][i])%P;
for(int k=i;k<=11;k++){
a[j][k]-=a[i][k]*rate%P;
a[j][k]+=P;a[j][k]%=P;
}
}
}
for(int i=10;i>=0;i--){
for(int j=i-1;j>=0;j--){
ll rate=a[j][i]*inv(a[i][i])%P;
a[j][11]-=a[i][11]*rate%P;
a[j][11]+=P;a[j][11]%=P;
}
a[i][i]=a[i][11]*inv(a[i][i])%P;
}
}
int chk(ll x){
b[0]=1;
for(int i=1;i<=10;i++)b[i]=b[i-1]*x%P;
ll sum=0;
for(int i=0;i<=10;i++){
sum+=b[i]*a[i][i]%P;
sum%=P;
}
return sum==0;
}
int main(){
for(int i=0;i<=10;i++){
a[i][11]=ask(i);
ll p=1;
for(int j=0;j<=10;j++){
a[i][j]=p;
p=p*i%P;
}
}
gao();
for(int i=0;i<P;i++){
if(chk(i)){
printf("! %d\n",i);
fflush(stdout);
return 0;
}
}
printf("! -1\n");fflush(stdout);
}
Educational Codeforces Round 63 (Rated for Div. 2) E 带模高斯消元的更多相关文章
- Educational Codeforces Round 63 (Rated for Div. 2) 题解
Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...
- Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array (简单DP)
题目:https://codeforces.com/contest/1155/problem/D 题意:给你n,x,一个n个数的序列,你可以选择一段区间,区间的数都乘以x,然后求出最大字段和 思路: ...
- Educational Codeforces Round 63 (Rated for Div. 2) D dp(最大连续子序列)
https://codeforces.com/contest/1155/problem/D 题意 一个n个数的数组\(a[i]\),可以选择连续的一段乘x,求最大连续子序列的值 题解 错误思路:贪心, ...
- Educational Codeforces Round 63 (Rated for Div. 2) B. Game with Telephone Numbers 博弈思维+模拟+贪心思维
题意:博弈题面 给出一个数字序列 (>=11) 有两个人任意删除数字 直到 数字只剩下11位 如果删除后的数字串开头是8那么就是第一个赢 否则就是第二个人赢 第一个人先手 数字序列一定是奇 ...
- Educational Codeforces Round 63 (Rated for Div. 2) C. Alarm Clocks Everywhere gcd
题意:给出一个递增的时间序列a 给出另外一个序列b (都是整数) 以b中任选一个数字作为间隔 自己从1开始任选一个时间当成开始时间 输出选择的数字标号以及 开始时间 思路 直接求间隔的公共gc ...
- Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array 分类讨论连续递推dp
题意:给出一个 数列 和一个x 可以对数列一个连续的部分 每个数乘以x 问该序列可以达到的最大连续序列和是多少 思路: 不是所有区间题目都是线段树!!!!!! 这题其实是一个很简单的dp 使用的是分 ...
- Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array(动态规划.递推)
传送门 题意: 给你一个包含 n 个元素的序列 a[]: 定义序列 a[] 的 beauty 为序列 a[] 的连续区间的加和最大值,如果全为负数,则 beauty = 0: 例如: a[] = {1 ...
- Educational Codeforces Round 63 (Rated for Div. 2)
传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
随机推荐
- 《3D_Deep_Learning_for_Robot_Perception.pdf》
https://github.com/PrincetonVision/marvin
- 图书分享 -《Natural Language Processing with Python》
-<Natural Language Processing with Python> 链接:https://pan.baidu.com/s/1_oalRiUEw6bXbm2dy5q_0Q ...
- Codeforces Round #603 (Div. 2) D. Secret Passwords 并查集
D. Secret Passwords One unknown hacker wants to get the admin's password of AtForces testing system, ...
- 函数高级实战之ATM和购物车系统升级
一.项目 二.项目地址 https://github.com/nickchen121/atm 三.功能需求 FUNC_MSG = { '0': '注销', '1': '登录', '2': '注册', ...
- 第04组 Beta冲刺(4/5)
队名:new game 组长博客 作业博客 组员情况 鲍子涵(队长) 过去两天完成了哪些任务 地图移动 接下来的计划 素材和脚本相连 引入声音素材 还剩下哪些任务 让游戏本体运行 遇到了哪些困难 时间 ...
- Win32 程序开发入门:一个最简单的Win32程序
一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Applicatio ...
- Java连载46-Java中的多态
一.多态的语法 1.关于多态中涉及到几个概念 (1)向上转型(upcasting) 子类型转换为父类型,又被称为自动类型转换 (2)向下转型(downcasting) 父类型转换为子类型,又被称为强制 ...
- jxl解析excel时,处理中文乱码问题
jxl解析excel时,处理中文乱码问题 一般出现较多的问题是,当exce中包含了中文或特殊字符时,在解析时候就会出现乱码现象. 解决方法为: InputStream in = new FileInp ...
- 15个Python面试问题
引言 想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python.下面这些问题涉及了与Python相关的许多技能,问题的关注点主要是语言本身,不是某个特定的包或模块.每一个问题都可以 ...
- 测试工程师技术tree(“自言自语”)
理论部分 1.测试分为哪几个阶段 2.测试的流程是什么 3.如何做好测试计划 4.常见的测试用例设计方法有哪些 5.一条bug记录包含哪些内容 5.如何分层自动化测试 6.如何保证脚本的有效性 7.如 ...