CF676E:The Last Fight Between Human and AI
人类和电脑在一个多项式上进行博弈,多项式的最高次项已知,一开始系数都不确定。电脑先开始操作,每次操作可以确定某次项的系数,这个系数可以是任意实数。给出一个博弈中间状态,最后如果这个多项式被x-K整除就算人类赢,问人类是否有可能赢。n<=1e5,K和所有给出的系数的绝对值在1e4内,不确定的系数用?表示。
这个读入有点坑爹。。。
要使,做一下除法,余数大概长这个样子
问题即有没有可能使L为0。
(一)K=0时,决胜关键就在a0,如果a0确定了并且不为0那就完了,如果a0没确定,看轮到谁,轮到人类赢,轮到电脑输。
(二)K≠0时
(1)如果有系数未确定,看最后一步是谁走,如果是人类走,则最后相当于解一个一元一次方程,由于k不为0因此一定有解,如果电脑走则一定输。
(2)如果系数都确定了,就要检验这个式子是否为0,由于次数太高无法计算,因此取几个模数检验一下模完是否都是0,用秦九韶计算。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
//#include<assert.h>
#include<math.h>
#include<iostream>
using namespace std; int n,k;
#define maxn 100011
#define LL long long
const int mod[]={,,,,};
int a[maxn];bool ok[maxn];char s[];
int main()
{
scanf("%d%d",&n,&k);
int cnt=;
memset(ok,,sizeof(ok));
for (int i=;i<=n;i++)
{
scanf("%s",s);
if (s[]=='?') cnt++,ok[i]=;
else
{
int t=;if (s[]=='-') t=-;
int tmp=;for (int j=(s[]=='-');j<strlen(s);j++) tmp=tmp*+s[j]-'';
a[i]=tmp*t;
}
}
bool ans=;
if (k==)
{
if (ok[])
{
if ((n+-cnt)&) ans=;
else ans=;
}
else if (a[]==) ans=;else ans=;
}
else
{
if (cnt)
{
if (n&) ans=;
else ans=;
}
else
{
bool flag=;
for (int j=;j<;j++)
{
LL ans=;
for (int i=n;i>=;i--)
{
// cout<<ans<<endl;
ans=(ans*k+a[i])%mod[j];
}
// cout<<ans<<endl;
if (ans) flag=;
}
if (flag) ans=;
else ans=;
}
}
printf(ans?"Yes\n":"No\n");
return ;
}
CF676E:The Last Fight Between Human and AI的更多相关文章
- Codeforces Round #354 (Div. 2) E. The Last Fight Between Human and AI 数学
E. The Last Fight Between Human and AI 题目连接: http://codeforces.com/contest/676/problem/E Description ...
- Codeforces 676E The Last Fight Between Human and AI 规律
链接 Codeforces 676E The Last Fight Between Human and AI 题意 给一个多项式,有些系数不确定.人和机器轮流填系数,系数可以是任何数,问是否能使得最后 ...
- Human and AI's future (reverie)
However, I do notice that to make the dark situation happen, it doesn't require the topleft matrix t ...
- 【转载】 “强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识
原文地址: https://yq.aliyun.com/articles/400366 本文来自AI新媒体量子位(QbitAI) ------------------------------- ...
- 黄聪:win7 64位系统PS、AI、PSD缩略图预览补丁
MysticThumbs支持Windows 7 / Vista / XP,32位和64位.除了预览PSD以外,还支持DDS.SGI缩略图显示. Mystic Thumbs是一款用来支持win7 64位 ...
- Nature重磅:华裔科学家成功解码脑电波,AI直接从大脑中合成语音
[导读]Nature发表华裔作者论文:通过解码大脑活动提升语音的清晰度,使用深度学习方法直接从大脑信号中产生口语句子,达到150个单词,接近正常人水平. 大脑活动能够解码成语音了. 说话似乎是一项毫不 ...
- 云原生 AI 前沿:Kubeflow Training Operator 统一云上 AI 训练
分布式训练与 Kubeflow 当开发者想要讲深度学习的分布式训练搬上 Kubernetes 集群时,首先想到的往往就是 Kubeflow 社区中形形色色的 operators,如 tf-operat ...
- 曼孚科技:“四管齐下”筑牢AI数据隐私安全防线
谈及数据,绕不开的一个话题就是数据隐私与数据安全.随着数字化进程加快,数据安全事件频发,据Risk Based Security统计,去年国际数据泄露事件近5000起,被泄露数据近41亿条,数据造成的 ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
随机推荐
- div 弹出 居中
function show_tc_conv(){var x=jq13(window).width()/2;var y=jq13(window).height()/2; var div_w=jq13(& ...
- java websocket 简单使用【案例】
现很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器.这种 ...
- sqlServer备份和还原语句
数据库备份语句和还原语句: --完整备份 Backup Database xxx To disk=’G:\Backup\xxx.bak’ --查看物理路径 restore filelistonly f ...
- 快速排序算法原理及其js实现
要说快排的原理,通俗点说就是把一个事情,分成很多小事情来处理,分治的思想. 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这10个数进行排序.首先在这个序列中随便找一个数作为 ...
- LoadRunner 11中Record无法自动生成脚本——解决办法
[问题描述] 安装loadRunner 11, 使用IE为默认浏览器,打开一个页面进行脚本录制:录制完成后,无法生成脚本. [问题现象] 控制台输出如下: ****** Start Log Messa ...
- jpa,querydsl
[TOC] # jpa ## 生成通用模板 实现自定义方法有两种方法: 1. 根据衍生规则进行实现,此种情况简单:查询方法衍生规则 http://docs.spring.io/spring-data/ ...
- chosen-bootstrap使用技巧
1.页面加载完成后,通过js方式设置值,无法有效显示的问题. 解决:先设置值,让后在进行初始化操作. // 设置select选中值 $("#type").val(type); // ...
- Codeforces Round #460 (Div. 2)_D. Substring_[dp][拓扑排序]
题意:一个有向图,每个结点 被赋予一个小写字母,一条路径的value等与这条路径上出现次数最多的字母的数目,求该图的最大value 比赛时,用dfs超时,看官方题解用的dp和拓扑排序,a--z用0-2 ...
- iis如何在dos中注册
iis如何在dos中注册 2009-09-23 08:13 提问者采纳 cd \cd c:\windows\microsoft.net\framework\v2.0.50727aspnet_r ...
- 1257 背包问题 V3(二分)
1257 背包问题 V3 3 秒 131,072 KB 80 分 5 级题 题意 : 从n个物品中选出k个,使单位体积价值最大 思路: 一开始正面想,试过很多种,排序什么的..总是结果不对,最后想到二 ...