生成函数的一般应用;

#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=;
const long double PI=acos(-1.0);
struct cp{
long double r,i;
cp(long double _r=,long double _i=):r(_r),i(_i){}
cp operator+(const cp&a){
return cp(r+a.r,i+a.i);
}
cp operator-(const cp&a){
return cp(r-a.r,i-a.i);
}
cp operator*(const cp&a){
return cp(r*a.r-i*a.i,r*a.i+a.r*i);
}
void pu(long double _r=,long double _i=){
r=_r;i=_i;
}
}wn,w,A[][maxn],tmp[maxn],x,y;
int n,dig[maxn],rev[maxn],L;
void fft(cp a[],int flag){
for(int i=;i<n;++i)tmp[i]=a[rev[i]];
for(int i=;i<n;++i)a[i]=tmp[i];
for(int i=;i<=n;i<<=){
cp wn(cos(*PI/i),flag*sin(*PI/i));
for(int k=;k<n;k+=i){
cp w(,);
for(int j=k;j<k+i/;++j){
x=a[j];y=a[j+i/]*w;
a[j]=x+y;a[j+i/]=x-y;
w=w*wn;
}
}
}
if(flag==-)for(int i=;i<n;++i)a[i].r/=n;
}
void solve(cp aa[],cp bb[],int len){
memset(rev,,sizeof(rev));
memset(dig,,sizeof(dig));
for(n=,L=;n<(len<<);n<<=,++L);
for(int i=;i<n;++i){
int ll=;
for(int t=i;t;t>>=)dig[ll++]=t&;
for(int j=;j<L;++j)rev[i]=(rev[i]<<)|dig[j];
}
for(int i=len;i<n;++i)aa[i].pu(),bb[i].pu();
//for(int i=0;i<n;++i)cout<<aa[i].r<<' ';cout<<endl;
fft(aa,);fft(bb,);
for(int i=;i<n;++i)aa[i]=aa[i]*bb[i];
fft(aa,-);
}
bool is[],ex[][];
char ss[];
int main(){
for(long long i=;i<;++i){
if(!is[i]){
for(long long j=i+i;j<;j+=i)is[j]=;
}
}
int a,b,c,op;
while(scanf("%d%d%d",&a,&b,&c)==&&(a||b||c)){
memset(ex,,sizeof(ex));
for(int i=;i<=c;++i){
scanf("%d",&op);scanf("%s",ss);
if(ss[]=='S')ex[][op]=;
else if(ss[]=='H')ex[][op]=;
else if(ss[]=='C')ex[][op]=;
else ex[][op]=;
}
for(int i=;i<;++i)
for(int j=;j<b;++j){
if(is[j]&&ex[i][j]){
A[i][j].pu();
}
else A[i][j].pu();
}
solve(A[],A[],b);
solve(A[],A[],b);
solve(A[],A[],b);
for(int i=a;i<=b;++i){
printf("%lld\n",(long long)(A[][i].r+0.5));
}
cout<<endl;
}
//system("pause");
return ;
}
/*
12 20 2
4S 6H
0 0 0
*/

uva12298(生成函数)的更多相关文章

  1. UVa12298(生成函数的简单应用+FFT)

    I have a set of super poker cards, consisting of an infinite number of cards. For each positive compo ...

  2. [CodeForces - 712D]Memory and Scores (DP 或者 生成函数)

    题目大意: 两个人玩取数游戏,第一个人分数一开始是a,第二个分数一开始是b,接下来t轮,每轮两人都选择一个[-k,k]范围内的整数,加到自己的分数里,求有多少种情况使得t轮结束后a的分数比b高.  ( ...

  3. HDU 1171 Big Event in HDU --暴力+生成函数

    题意:给n种房子,每种房子有一个值val和个数cnt,现在要把这些房子分成两部分,争取两部分总值相等,如果不能相等,让A>B,且A-B最小. 解法:先跑一次生成函数,c[n]表示组成总值为n的方 ...

  4. HDU 2189 悼念512汶川大地震遇难同胞――来生一起走 --生成函数

    这题跟上两题也差不多. 把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题.用生 ...

  5. HDU 1085 Holding Bin-Laden Captive --生成函数第一题

    生成函数题. 题意:有币值1,2,5的硬币若干,问你最小的不能组成的币值为多少. 解法:写出生成函数: 然后求每项的系数即可. 因为三种硬币最多1000枚,1*1000+2*1000+5*1000=8 ...

  6. BZOJ3028 食物 (生成函数)

    首先 1+x+x^2+x^3+...+x^∞=1/(1-x) 对于题目中的几种食物写出生成函数 (对于a*x^b , a表示方案数 x表示食物,b表示该种食物的个数) f(1)=1+x^2+x^4+. ...

  7. C# 条形码 生成函数 (Code 128 标准

    C# 条形码 生成函数 (Code 128 标准参考:GB/T 18347-2001) 最近在做单据打印,发现客户要求用到条形码,在网上找了,发现只有一些条形码的标准,但打出来发现根本不能扫,还要加某 ...

  8. [原创]oracle 顺序号生成函数。仿Sequence

    问题提出自项目中的老代码:一个Bill表,存储所有的表单信息,比如:员工入职单,离职单等等.(别喷,我知道要分多个表.但领导的意愿你是没办法违背的)表单的单据号是以四个字母+年月日+数字顺序号来表示. ...

  9. FFT与多项式、生成函数题目泛做

    题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...

随机推荐

  1. mysql 查看mysql相关信息

    登入数据库的时候: select @@version; select version(); 复制代码 mysql> select @@version; +-----------+ | @@ver ...

  2. Liunx mv(转)

    转竹子—博客:http://www.cnblogs.com/peida/archive/2012/10/27/2743022.html mv命令是move的缩写,可以用来移动文件或者将文件改名(mov ...

  3. (转)easyui datagrid 部分参数说明

    easyui datagrid 部分参数 数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数 ...

  4. Android.HowToDesignPluginArchitectureInAndroidApp

    There is a tools called "dx", this tool can transfer Java Binary Code into Android Dalvik ...

  5. 应用内直接跳转到Appstore

    iOS开发中,应用内直接跳转到Appstore .进入appstore中指定的应用 NSString *str = [NSString stringWithFormat: @"itms:// ...

  6. iOS 3D Touch功能

    新的触摸体验——iOS9的3D Touch 一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了 ...

  7. 看起来像是PS的照片,实际上却令人难以置信!

    图片来源:网络 在现实生活中 很多照片看起来不可思议 就像经过PS处理的一样. 今天就跟随米醋一起来感受一下 看这些超现实的真实照片. 一张感光过度的照片, 让狗的头看起来像是悬浮的. 一只被困在琥珀 ...

  8. 如何查看api项目接口

    http://www.api.com/Api/Page/index/?format_type=json&api_cate=cms&ma=8026

  9. windows无法停止 服务 错误1053 服务没有及时响应

    windows无法停止 服务 错误1053 服务没有及时响应 服务程序.exe -st

  10. Python内置的subprocess.Popen对象

    具体内容参见:https://docs.python.org/3/library/subprocess.html 大概来说,就是可以对应输入的命令产生一个进程,该进程实例内置如下方法. |  comm ...