【VK Cup 2016 - Round 1 (Div 2 Edition)D Bear and Polynomials
来源:互联网 发布:淘宝店铺推广方式方案 编辑:程序博客网 时间:2024/04/28 17:08
题意:
有一个多项式P,这个多项式被定义为合法的,即——
1,其最高次项为n(2e5),不可变为0
2,每项系数绝对值均不可超过k
3,各项系数均为整数
现在P(2)!=0,我们想只改变一个系数,同时使得——
1,P(2)=0
有一个多项式P,这个多项式被定义为合法的,即——
1,其最高次项为n(2e5),不可变为0
2,每项系数绝对值均不可超过k
3,各项系数均为整数
现在P(2)!=0,我们想只改变一个系数,同时使得——
1,P(2)=0
2,a[n]!=0(即不能使最高项的系数为0)
题解:
题意就是改变ai使得2^n*an+2^(n-1)*an-1+....+a0为0,那么从低位扫到高位,记录后缀和(必为偶数,否则跳出),再预先处理出前缀和,他们相加满足条件即可。
#include <set>#include <map>#include <stack>#include <queue>#include <deque>#include <cmath>#include <vector>#include <string>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define L(i) i<<1#define R(i) i<<1|1#define INF 0x3f3f3f3f#define pi acos(-1.0)#define eps 1e-12#define maxn 300100#define MOD 1000000007int n;long long k;long long a[maxn];long long num[maxn];int main(){ int t; while(scanf("%d%I64d",&n,&k) != EOF) { for(int i = 0; i <= n; i++) scanf("%I64d",&a[i]); memset(num,0,sizeof(num)); int cnt = -1,ans = 0; for(int i = n-1; i >= 0; i--) { num[i] = (num[i+1] << 1) + a[i+1]; if(num[i] > k || num[i] < -k) { cnt = i; break; } } long long cur = 0; for(int i = 0; i <= n; i++) { if(i == n && !cur) break; cur >>= 1; if(i > cnt && cur+2*num[i] <= k && cur+2*num[i] >= -k) ans++; cur += a[i]; if(cur & 1) break; } printf("%d\n",ans); } return 0;}
0 0
- VK Cup 2016 - Round 1 (Div. 2 Edition) D. Bear and Polynomials
- 【VK Cup 2016 - Round 1 (Div 2 Edition)D Bear and Polynomials
- VK Cup 2016 - Round 1 (Div. 2 Edition)----D Bear and Polynomials 数论+二进制,很好的题!!!
- 【VK Cup 2016 - Round 1 (Div 2 Edition)D】【二进制思想 扫描贪心】Bear and Polynomials 2的幂次多项式改变一位使得和为0
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D. Bear and Two Paths
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D. Bear and Two Paths
- VK Cup 2016 - Round 1 (Div. 2 Edition)-C - Bear and Forgotten Tree 3-构造
- VK Cup 2016 - Round 1 (Div. 2 Edition)C. Bear and Forgotten Tree 3(构造)
- VK Cup 2016 - Round 1 (Div. 2 Edition) A. Bear and Reverse Radewoosh
- VK Cup 2016 - Round 1 (Div. 2 Edition) B B. Bear and Displayed Friends 优先队列
- VK Cup 2016 - Round 1 (Div. 2 Edition) C. Bear and Forgotten Tree 3 构造
- VK Cup 2016 - Round 1 (Div. 2 Edition) C. Bear and Forgotten Tree 3
- 【VK Cup 2016 - Round 1 (Div 2 Edition)C Bear and Forgotten Tree 3 (构造)
- VK Cup 2016 - Round 1 (Div. 2 Edition) C D
- 【VK Cup 2016 - Round 1 (Div 2 Edition)C】【构造】Bear and Forgotten Tree 3 构造一棵树直径为d且点1的深度为h
- VK Cup 2016 - Round 1 (Div. 2 Edition)-B - Bear and Displayed Friends-STL(维护前k大)
- 【VK Cup 2016 - Round 1 (Div 2 Edition)A】【水题 暴力】Bear and Reverse Radewoosh 做题由易到难分高有难到易分高
- 【VK Cup 2016 - Round 1 (Div 2 Edition)B】【水题】Bear and Displayed Friends 即时维护最大6个数
- 单精度浮点数(float)与双精度浮点数(double)的区别
- C++模板之特化与偏特化详解
- centos 6.5 错误提示 No more mirrors to try. 如何解决
- SQL字符型字段按数字型字段排序实现方法
- java实现:机器人视觉与环境感知基于八叉树算法(待开源)
- 【VK Cup 2016 - Round 1 (Div 2 Edition)D Bear and Polynomials
- js字符串转数字
- Android系统篇之----Binder机制和远程服务调用机制分析
- angularJs HTTP响应拦截器
- java-爬虫-爬取银行名字列表
- 一句话总结Java的接口回调机制
- Codeforces 370D - Memory and Trident(模拟)
- C语言学习笔记 lesson6 字符串
- 马哲原理的一点东西