hdu5446——Unknown Treasure

题意:给定n和m,求c(n,m)%(∏ p)的值,相当于lucas定理的一个推广,在p不是素数的情况下的一个解决方法。

思路: 首先对于c(n,m)%p[i]来讲,是一个lucas的裸题,那么对于c(n,m)%(∏ p)划分成lucas子问题求解后就变成了M%p[i]==a[i]的问题,这个问题就是裸的中国剩余定理了。

code:

    #include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>#include <sstream>#include <string>#include <vector>#include <list>#include <queue>#include <stack>#include <map>#include <set>#include <bitset>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef long double ld;const int INF=0x3fffffff;const int inf=-INF;const int N=1e5+5;const int M=2005;const int mod=1000000007;const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))#define cpy(x,a) memcpy(x,a,sizeof(a))#define ft(i,s,n) for (int i=s;i<=n;i++)#define frt(i,s,n) for (int i=s;i>=n;i--)#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define lrt  rt<<1#define rrt  rt<<1|1#define middle int m=(r+l)>>1#define lowbit(x) (x&-x)#define pii pair<int,int>#define mk make_pair#define IN freopen("in.txt","r",stdin)#define OUT freopen("out.txt","w",stdout)int read() {char ch;while (ch = getchar(), !isdigit(ch));int res = ch - '0';while (ch = getchar(), isdigit(ch))res = res * 10 + ch - '0';return res;}ll powm(ll a,ll n,ll m){ll ans=1;while (n){if (n&1) ans=ans*a%m;a=a*a%m;n>>=1;}return ans%m;}//++++++++++++密++++++++++++++封++++++++++++++++++++线ll f[N],inv[N];int init(int n){f[0]=1;for (int i=1;i<n;i++) f[i]=f[i-1]*i%n;inv[n-1] = powm(f[n-1], n-2, n);  for (int i = n - 2; i >= 0; i--) inv[i] = inv[i+1] * (i+1) % n;  }ll Lucas(ll n,ll m,ll p){ll ans=1;while (n&&m){ll a=n%p,b=m%p;if (a<b) return 0;ans=ans*f[a]%p*inv[b]%p*inv[a-b]%p;n/=p;m/=p;}return ans%p;}ll mul(ll a, ll b, ll mod) {a = (a % mod + mod) % mod;b = (b % mod + mod) % mod;ll ret = 0;while(b){if(b&1){ret += a;if(ret >= mod) ret -= mod;}b >>= 1;a <<= 1;if(a >= mod) a -= mod;}return ret;}void ex_gcd(ll a,ll b,ll d,ll& x,ll& y){if (!b) {d=a;x=1;y=0;}else {ex_gcd(b,a%b,d,y,x);y-=x*(a/b);}}ll China(int n,ll* a,ll* m){ll M=1,d,x=0,y;for (int i=0;i<n;i++) M*=m[i];for (int i=0;i<n;i++){ll w=M/m[i];ex_gcd(m[i],w,d,d,y);x=x+mul(mul(a[i],y,M),w,M);}return (x+M)%M;}ll p[N],a[N];int main(){ll n,m;int T=read(),k;while (T--){scanf("%lld%lld%d",&n,&m,&k);ft(i,0,k-1){scanf("%lld",p+i);init(p[i]);a[i]=Lucas(n,m,p[i]);//cout<<a[i]<<endl;}printf("%lld\n",China(k,a,p));}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件

在论坛上看到很多关于datagrid,gridview,datalist,rpeater提取header,footer中控件的问题,整理了一下.供大家分享下面我以DataGrid为便进行说明.footer栏又称页脚栏,在很多时候我们可以在该栏放页码及相当的功能键.但是最后在获得这些控件引用的时候就会有点麻烦,由于footer(页…

如何做好一名软件实施人员 (转载)

通过一年的软件实施&#xff0c;使我深深的感觉到&#xff0c;软件实施&#xff0c;其实并不是一件很容易的事&#xff0c;也许可算是一项挑战&#xff0c;很需要“明知山有虎&#xff0c;偏向虎山行”的信心和勇气。为什么这样说呢&#xff1f; 因为&#xff0c;软件实施可以说…

hdu 5802——Windows 10

题意&#xff1a;给定两个音量&#xff0c;需要从l调到r&#xff0c;每次只能向上一下或者向下&#xff08;1&#xff0c;2&#xff0c;4&#xff0c;2^n&#xff09;下&#xff08;连续向下的情况下&#xff09;&#xff0c;每次可以停歇或向上来打断向下的连续性&#xff0c;…

20160807_第一周周报

写在前面 以后每周周日要进行一次周报&#xff0c;内容长短不限&#xff0c;为这一周的知识点和心态方面的总结&#xff0c;还有就是对未来的相关规划和调节&#xff01;知识点方面 在知识点方面进度不是太大&#xff0c;打的还是一般化的套路&#xff0c;在这个周的前几天的…

微软认证题库

微软认证题库 70-320XML Web Service开发for C#模拟题实用软件工程方法题库MCP 70-300&#xff1a;基于.NET的需求分析和解决方案设计认证题库三个认证题库点击直接下载posted on 2007-12-12 22:32 当当 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/hyzhi/a…

hdu 5783——Divide the Sequence

题意及思路&#xff1a; 求一个序列的分段个数&#xff0c;使得每一段的前缀和为0&#xff0c;如果正向思维&#xff0c;那么解法是从前往后遍历&#xff0c;每遇到一个负数就向前遍历直到>0&#xff08;这样贪心保证了序列尽可能多&#xff09;,但是这样最坏的情况是n^2的…

IE7快捷键

快捷方式 常规 打开或关闭全屏模式F11移动选择网页上的地址栏、“刷新”按钮、搜索框和项目Tab查找页面上的字词或短语CtrlF在新窗口中打开当前网页CtrlN打印页面CtrlP选择页面上的所有项目CtrlA放大Ctrl加号缩小Ctrl减号缩放到 100%Ctrl0导航快捷方式 转至主页 AltHome后退Alt…

BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence

题意 给定一个数列&#xff0c;随机从该数列里删除一个数&#xff0c;求该数列的的相邻之间的绝对值的最大值的和。 思路 两个数列来分别维护i位前面的相邻的绝对值的最大以及i后面的最大&#xff0c;枚举每一个可能删除的数&#xff0c;然后分别从左右和要删除的这个空档里…

BestCoder Round #86 1003 HDU 5806——NanoApe Loves Sequence Ⅱ

题意&#xff1a; 给定一个序列&#xff0c;问在这个序列里有多少区间第k的的数>m 思路&#xff1a; 在比赛的时候是多想了&#xff0c;开始像区间第k大的问题&#xff0c;赛后想想实在是偏了。 正确的解法是枚举起点然后用尺取法维护一段区间&#xff0c;直到找到k个数…

Could not load the assembly 'DotNetNuke.Authentication.LiveID'. Make sure that it is compiled before

今天发生一个莫名的错误&#xff1a;Could not load the assembly DotNetNuke.Authentication.LiveID. Make sure that it is compiled before&#xff0c;在网上找了下有如下的解释&#xff1a; My understanding and perhaps a core member would be willing to correct me i…

详细讲解Java中log4j的使用方法

详细讲解Java中log4j的使用方法 作者: 网络 来源: 日期: 2008-1-3 23:40:24 1、Log4j是什么&#xff1f; Log4j可以帮助调试&#xff08;有时候debug是发挥不了作 用的&#xff09;和分析&#xff0c;要下载和了解更具体的内容&#xff0c;还是访问其官方网站吧&#xff1a; ht…

HDU 1402——A * B Problem Plus

题意&#xff1a; 给定a&#xff0c;b&#xff0c;求a*b。 思路&#xff1a; a,b的长度都为50000&#xff0c;直接模拟计算n*m肯定超时&#xff0c;可以用快速傅里叶变化计算&#xff0c;然后再把相应的系数化简出来。 code&#xff1a; #include <iostream> #inclu…

随机广告图片

1<script language”JavaScript”>2var imageList newArray;3imageList[0] “image1.jpg”;4imageList[1] “image2.jpg”;5imageList[2] “image3.jpg”;6imageList[3] “image4.jpg”;7var urlList newArray;8urlList[0] “http://some.host/”;9urlList[1] “http://a…

HDU 4609——3-idiots

题意&#xff1a; 给定n个数&#xff0c;随机从这n个数中取3个数&#xff0c;问能组成三角形的概率是多少&#xff1f; 思路&#xff1a; 首先把统计这n个数出现的个数&#xff0c;那么会得到一个向量&#xff0c;这个向量的自我的乘积就是a[i]a[j]的可能的方案数&#xff0…

HDU 5730——Shell Necklace

题意&#xff1a; 一段长为i的项链有a[i]中装饰方法&#xff0c;问长度为n的项链有多少种装饰方式。 思路&#xff1a; 容易推出&#xff0c;dp[i]∑dp[j]*a[i-j],(1<j<i-1)那么这样就刚好符合卷积的运算&#xff0c;这样就可以愉快地使用fft了&#xff0c;不过数量级…

Core IO学习心得

最近看Core IO的内容&#xff0c;有一些心得给大家共享一下&#xff1a; Core IO作为微软IT基础架构优化框架中的一个部分。该框架包含三个部分&#xff1a;CIO&#xff0c;BPIO和APIO&#xff1a; CIO&#xff08;核心基础架构优化&#xff09;专注于核心基础机构组件&#x…

经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上

经典算法研究系列&#xff1a;十、从头到尾彻底理解傅里叶变换算法、上 作者&#xff1a;July、dznlong 二零一一年二月二十日 推荐阅读&#xff1a;The Scientist and Engineers Guide to Digital Signal Processing&#xff0c;By Steven W. Smith, Ph.D。此书地址&#xf…

flash调用js中的方法,让js传递变量给flash (兼容 IE FF) (转)

前几天发表了 将FlashVars写在JS函数中&#xff0c;实现与后台的实时变量更新&#xff0c;但是仅支持 IE&#xff0c;随后与 Luckyer 进行了交流&#xff0c;发现用 SetVariable 可以很方便的实现多浏览器兼容。举例如下。html 页中的 JavaScript 函数&#xff1a;function Get…

经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、下

经典算法研究系列&#xff1a;十、从头到尾彻底理解傅里叶变换算法、下 作者&#xff1a;July、dznlong 二零一一年二月二十二日 推荐阅读&#xff1a;The Scientist and Engineers Guide to Digital Signal Processing&#xff0c;By Steven W. Smith, Ph.D。此书地址&#…

调出sharepoint错误的详细页面

记录一个小技巧&#xff1a; 在开发sharepoint的时候经常出现" An unexpected error has occurred."的页面&#xff0c;让人非常的郁闷。 打开web.config, 找到&#xff1a; <SafeMode MaxControls"200" CallStack"false" DirectFileDepende…