多项式乘法
题目描述
Etéreo 吃完了元宵,又开始思考数学问题了。这次他拿了两个多项式 P 和Q 。他知道这两个多项式的乘积也是一个多项式,但他不清楚每一项的系数。所以他又来请问你咯。输入共三行。 第一行两个整数 n,m ,表示多项式 P 的最高次项次数 n 和 Q的最高次项次数 m 。 第二行 n+1 个整数,表示多项式 P的每一项的系数。按次数从小到大的顺序排列。 第三行 m+1 个整数,表示多项式 Q的每一项的系数。按次数从小到大的顺序排列。 输出共一行,n+m+1个整数,表示乘积多项式的每一项的系数。按次数从小到大排列。
代码
#include<bits/stdc++.h> using namespace std; int a[1000],b[1000],c[2000]; int main() { int n,m; cin>>n>>m; for(int i = 0; i <= n; i++) cin>>a[i]; for(int i = 0; i <= m; i++) cin>>b[i]; memset(c, 0, sizeof(c)); for(int i = 0; i <= n; i++) { for(int j = 0; j <= m; j++) c[i+j] += a[i]*b[j]; } cout<<c[0]<<" "; for(int i = 1; i <= n+m; i++) cout<<c[i]<<" "; }
小猫排队
题目描述
世界上最苦恼的事情莫过于排队了,特别是排在你前面的猫比你可爱的时候。----《论猫的自我修养》小猫啾啾现在就很苦恼,它排在队伍的末尾处等着买酱油,前面还有足足n只猫咪。但幸运的是小猫啾啾会一种魔法:它可以和前面距离它最近且比它可爱(可爱值大于啾啾)的小猫交换位置(被交换的小猫会被传送到啾啾之前的位置)。已知啾啾每一分钟开始时可以施展一次魔法,而每一分钟过后排在队伍最前面的猫咪就会离开队伍(这意味这啾啾会先交换位置然后队伍才开始移动)。因为等会还得去买饺子所以啾啾会尽可能地与自身前方比它可爱且未出队的小猫交换位置(可以证明交换后必定更快买到酱油),现在啾啾想请你帮它计算出它需要多久才能买到酱油离开
代码
#include<bits/stdc++.h> using namespace std; const int N=2e5+10; int a[N]; int main() { int n,k; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>k; int l=1,r=n+1; for(int i=n;i>=l;i--){ if(a[i]>k) r=i,l++; } cout<<r; return 0; }