CF1155E Guess the Root
题意:交互,有一个10次多项式,你可以询问50次当x为某个取值时多项式的值。你需要回答这个多项式的零点。
解:询问11个数然后高斯消元解方程得出系数。然后枚举定义域看有无0点。
#include <bits/stdc++.h>
const int N = , MO = ;
int a[N][N], n = ;
inline int qpow(int a, int b) {
int ans = ;
while(b) {
if(b & ) {
ans = 1ll * ans * a % MO;
}
a = 1ll * a * a % MO;
b = b >> ;
}
return ans;
}
inline void Gauss() {
for(int i = ; i < n; i++) {
for(int j = i + ; j <= n; j++) {
if(a[j][i]) {
std::swap(a[j], a[i]);
break;
}
}
if(!a[i][i]) continue;
int inv = qpow(a[i][i], MO - );
for(int j = i + ; j <= n; j++) {
if(!a[j][i]) continue;
int p = 1ll * a[j][i] * inv % MO;
for(int k = i; k <= n + ; k++) {
a[j][k] -= 1ll * a[i][k] * p % MO;
a[j][k] = (a[j][k] % MO + MO) % MO;
}
}
}
for(int i = n; i > ; i--) {
a[i][n + ] = 1ll * a[i][n + ] * qpow(a[i][i], MO - ) % MO;
a[i][i] = ;
for(int j = i - ; j >= ; j--) {
if(!a[j][i]) continue;
int p = a[j][i];
a[j][i] -= p;
a[j][n + ] -= 1ll * a[i][n + ] * p % MO;
a[j][n + ] = (a[j][n + ] % MO + MO) % MO;
a[j][i] = (a[j][i] % MO + MO) % MO;
}
}
return;
}
inline int cal(int x) {
int ans = , temp = ;
for(int i = ; i <= n; i++) {
(ans += 1ll * temp * a[i][n + ] % MO) %= MO;
temp = 1ll * temp * x % MO;
}
return ans;
}
int main() {
for(int i = ; i <= n; i++) {
fflush(stdout);
printf("? %d \n", i);
fflush(stdout);
scanf("%d", &a[i][n + ]);
fflush(stdout);
a[i][] = ;
for(int j = ; j <= n; j++) {
a[i][j] = 1ll * a[i][j - ] * i % MO;
}
}
Gauss();
int ans = -;
for(int i = ; i < MO; i++) {
if(!cal(i)) {
ans = i;
break;
}
}
printf("! %d \n", ans);
return ;
}
AC代码
CF1155E Guess the Root的更多相关文章
- 关于一些没做出来的SBCF题
这里是一些我SB没做出来的CF水题. 其实这些题思维量还不错,所以写在这里常来看看…… 不一定每题代码都会写. CF1143C Queen 其实只要注意到如果一个点开始能被删,那一直就能被删:一个点开 ...
- Centos 下 mysql root 密码重置
重置mysql密码的方法有很多,官网也提供了很方便的快捷操作办法,可参考资料 resetting permissions .本文重置密码的具体步骤如下: 一.停止MySQL(如果处于运行状态) #se ...
- CentOS7 重置root密码
1- 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Con ...
- Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)
忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...
- Atitit godaddy 文件权限 root权限设置
Atitit godaddy 文件权限 root权限设置 1. ubuntu需要先登录,再su切换到root1 2. sudo 授权许可使用的su,也是受限制的su1 3. ubuntu默认吗roo ...
- Mysql 忘记root密码处理办法
一.更改my.cnf配置文件 1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-t ...
- Ubuntu设置root用户登录图形界面
Ubuntu默认的是root用户不能登录图形界面的,只能以其他用户登录图形界面.这样就很麻烦,因为权限的问题,不能随意复制删除文件,用gedit编辑文件时经常不能保存,只能用vim去编辑. 解决的办法 ...
- php利用root权限执行shell脚本
vi /etc/sudoers , 为apache用户赋予root权限,并且不需要密码,还有一步重要的修改(我被困扰的就是这个地方) root ALL=(ALL) ALL apache ALL= ...
- linux下如何添加一个用户并且让用户获得root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing pass ...
随机推荐
- mybatis 参数格式异常-- Error querying database. Cause: java.lang.NumberFormatException: For input string
mybatis中 <if></if>标签中进行判断时,如果传入的时字符格式和数字进行判断需要将数字进行转译,否则默认是数字和数字进行比较,这是就会出现参数格式异常如<if ...
- 学习day01
1.web C/S:Client Server 客户端 服务器 QQ,... B/S:Browser Server 浏览器 服务器 PC机:Personal Computer 个人电脑 2.HTML ...
- 山西大同大学教务处教师端——可在PC端,手机端操作
解决问题:大同大学教务处官网教师端口一进去就卡住了,点上面一行的菜单无响应 下载方法(学生端 / 教师端 / 验证脚本): 链接:https://pan.baidu.com/s/1MWrJXoPzE ...
- Android launcher 壁纸 wallpaper
壁纸分为动态和静态两种: 如果只需要修改默认静态壁纸,替换frameworks/base/core/res/res/drawable/default_wallpaper.jpg即可,或者在源码中修改对 ...
- DVWA-XSS学习笔记
DVWA-XSS XSS概念:由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. XSS类型: 反射型XSS:只是简单地把 ...
- EasyUI之DataGird动态组合列
Dojo.ExtJS.Jquery(EasyUI.jQgrid.ligerui.DWZ).还有asp.net中的服务器控件.当然也少不了HTML 标签之table标签了.其中dojo.ExtJS.Jq ...
- 好程序员web前端分享想要学习前端需要学那些课程
好程序员web前端分享想要学习前端需要学那些课程,仔细思考了一下如何回答好这个话题,其实前端是一个涵盖面非常之广泛的一个职位,所需知识体系非常庞杂,与传统语言“想要精一行,必先通一门” 有很大差别, ...
- 【技术说明】iOS10来了,AppCan已全面适配!
IPhone 7出了,你的肾还好吗?别紧张,不买肾7,同样可以体验最新的iOS10! AppCan对引擎.插件.编译系统等都进行了重要升级,让你的APP轻松适配iOS10!具体如何,请往下看! 引擎 ...
- Django Template(模板)
一.模板组成 组成:HTML代码 + 逻辑控制代码 二.逻辑控制代码的组成 1.变量 语法格式 : {{ name }} # 使用双大括号来引用变量 1.Template和Context对象(不推荐使 ...
- Spring第一天——入门与IOC
大致内容 spring基本概念 IOC入门 [17.6.9更新],如何学习spring? 掌握用法 深入理解 不断实践 反复总结 再次深入理解与实践 一.Spring相关概念 1.概述: Sprin ...