博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPOJ - POLYNOM Polynomial(数论乱搞)题解
阅读量:5281 次
发布时间:2019-06-14

本文共 1066 字,大约阅读时间需要 3 分钟。

题意 :给你n个数,问你是否存在一个多项式(最多三次方)满足f(i)= xi。

思路:讲一个神奇的思路:

x- (x - 1)3 = 3x2 - 3x + 1

x2 - (x - 1)2 = 2x + 1

x - (x - 1) = 1

1 - 1 = 0

看了上面这么多,其实已经可以发现一件事情了:如果相邻常数减一次那么就是0;相邻一次式减一次降为常数,减两次为0;相邻二次式减一次降为一次式,减两次降为常数,减三次....

由此我们可以知道,如果存在一个多项式(最多三次方)满足f(i)= xi,那么我相邻的数相减4次必为0,如果不满足,那肯定不是同个式子里的

代码:

#include
#include
#include
#include
#include
#include
#include
typedef long long ll;using namespace std;const int maxn = 500 + 5;const double INF = 0x3f3f3f3f;const ll MOD = 1000000007;ll num[maxn];int main(){ int T; scanf("%d", &T); while(T--){ ll n; scanf("%lld", &n); for(int i = 1; i <= n; i++) scanf("%lld", &num[i]); for(int i = 1; i <= 4; i++){ for(int j = n ;j > i; j--) num[j] = num[j] - num[j - 1]; } bool flag = true; for(int i = 5; i <= n; i++){ if(num[i]){ flag = false; break; } } if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}/*Input:31 35 0 1 2 3 45 0 1 2 4 5Output:YESYESNO*/

 

转载于:https://www.cnblogs.com/KirinSB/p/9595556.html

你可能感兴趣的文章
sql server和mysql中分别实现分页功能
查看>>
jQuery CircleCounter的环形倒计时效果
查看>>
kafka server管理
查看>>
系统设计与分析(六)
查看>>
Java IO-1 File类
查看>>
计算机网络体系结构整理-第三单元网络交换
查看>>
Android开发笔记——常见BUG类型之内存泄露与线程安全
查看>>
Timer
查看>>
ADO.NET中ExcuteNonQuery获取存储过程Return返回值
查看>>
【动态规划】简单背包问题II
查看>>
Java Class Object
查看>>
HW5.29
查看>>
Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
查看>>
Edit Distance
查看>>
sqlserver查询效率
查看>>
linux用户管理
查看>>
dubbo 学习
查看>>
java ->多线程_线程同步、死锁、等待唤醒机制
查看>>
js正则替换
查看>>
在List中常用的linq表达式
查看>>