2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F Trig Function(切比雪夫多项式)
题目链接:Trig Function
题意:求给定n后,问sin(nx)多项式中,x^m项的系数是多少。
思路:切比雪夫多项式,可以把cos(nx)展开为系数不为0的每一项的累加。如图:
注意”!!”不是阶乘的阶乘,而是不超过n且与n具有相同奇偶性的所有正整数连乘积。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<cmath>
#include<map>
#include<set>
#include<cstdlib>
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long ll;
using namespace std;
const int MOD = 998244353;
const int maxn = 1e4+10;
ll fact[maxn] = {1};//factorial阶乘
void init(){for(int i = 1; i < maxn; i++){fact[i] = i*fact[i-1]%MOD;}
}
ll inverse(ll x,int q){ll ret = 1;while(q){if(q%2 == 1){ret = ret*x%MOD;}x = x*x%MOD;q /= 2;}return ret;
}
int main(){init();int n,m;while(~scanf("%d%d",&n,&m)){if(m > n) puts("0");else if(n%2 == 1 && m%2 == 0 || n%2 == 0 && m%2 == 1){puts("0");}else{//应该留意的是,当n是偶数,m对应切比雪夫多项式中的2k//当n是奇数,m对应切比雪夫多项式中的2k-1,公式里对应的换为mif(m >= 1){/*求n*(n+m-2)!!/(n-m)!! 由于(n+m-2) >= (n-m),所以从(n-m+1) 遍历的 (n+m-1)*/ll fz = n%MOD;for(int i = n-m+1; i <= n+m-1; i++){if(i%2 == (n+m-2)%2){fz = fz*i%MOD;}}ll ans = fz*inverse(fact[m],MOD-2)%MOD;/*逆元:fz/fact[m]%MOD = fz*inverse(fact[m],mod-2);*/if((n-m)/2%2) ans = -ans;printf("%lld\n",(ans+MOD)%MOD);}else{/*求(n+m-2)!!/(n-m)!! 由于(n+m-2) < (n-m),所以从(n+m-1) 遍历的 (n-m)*/ll fm = 1;for(int i = n+m-1; i <= n-m; i++){if(i%2 == (n+m-2)%2){fm = fm*i%MOD;}}ll ans = n%MOD*inverse(fact[m],MOD-2)%MOD*inverse(fm,MOD-2)%MOD;if((n-m)/2%2) ans = -ans;printf("%lld\n",(ans+MOD)%MOD);}}}return 0;
}
2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F Trig Function(切比雪夫多项式)相关推荐
- 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)
Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...
- 【推导】计蒜客17119 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function
题意:给你n,m,让你求cos(nx)的展开式的(cos(x))^m项的系数. 更一般的式子是这样的:. 队友的代码: #include<cstdio> #include<algor ...
- Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)
Problem Description Given a directed graph with nn nodes, labeled 0,1,⋯,n−1. For each <i, j> s ...
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E Maximum Flow
原题解链接:http://blog.csdn.net/kkkkahlua/article/details/78009087 他用的最小割的来求解最大流.认为只要讨论每一个点到0和n-1那个更小哪条边就 ...
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function(切比雪夫定理)
题目:https://nanti.jisuanke.com/t/17119 题意:找f(x)的x^m项的系数 思路:首先要找到公式啊 (还是别人发的,自己没找到 这样的话就可以直接按照公式找系数 代码 ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛B: Out-out-control cars
问题 B: Out-out-control cars 题目描述 Two out-of-control cars crashed within about a half-hour Wednesday a ...
- Skiing(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H)
Problem Description In this winter holiday, Bob has a plan for skiing at the mountain resort. This s ...
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
题意: 给定一个有向无环图,求该图的最长路. 思路: 由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可. 代码: # ...
- 2017 ACM/ICPC(西安)赛后总结
早上8:00的高铁,所以不得不6点前起床,向火车站赶--到达西安后已经是中午,西工大距离西安北站大概3小时车程的距离,只好先解决午饭再赶路了--下午3.30的热身赛,一行人在3.35左右赶到了赛场,坐 ...
最新文章
- c语言可视化_这些算法可视化网站助你轻松学算法
- TCP穿透NAT的C++版
- 人工机器:jetsonnano推理时出现 Segmentation fault(core dumped)
- windows phone 8 使用页面传对象的方式 实现页面间的多值传递
- 她只用1个方法,就把英语拿下了!
- 同步器 java_您可能不知道的五个高级Java同步器
- springboot怎么返回404_SpringBoot(二十)_404返回统一异常处理结果
- python控制树莓派gpioled,Python 控制树莓派 GPIO 输出:控制 LED 灯
- 算法笔记_094:蓝桥杯练习 矩阵相乘(Java)
- ajax 购物车 c#,c#购物车功能实现及收藏功能实现
- native8081端口 react_教你轻松修改React Native的端口(如何同时运行多个React Native、8081端口占用问题)...
- 关于设计行业的一些分类
- EXCEL 数据比对查询好用的指令——VLOOKUP 三种使用场景
- transform: translateY(-100%)偏移实现上滑隐藏导航栏
- Redisson分布式锁学习总结:RedissonMultiLock 如何同时锁住N个资源
- Event-Triggering Sampling Based Leader-FollowingConsensus in Second-Order Multi-Agent Systems
- 广告营销用户点击预测分析
- ffmpeg 常用命令行 (视频-转码)
- 没有空闲时间时该如何做一个业余项目?
- java中的“我”不是“我”,NaN特殊标识以及正无穷+负无穷应该等于多少?