1005

思路:

  prufer编码+组合数;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 1005
#define maxlen 4000500
struct int666 {
int len;
char ai[maxlen];
void mul(int pos)
{
long long cnt=;
for(int i=;i<len;i++)
{
cnt+=pos*(ai[i]);
ai[i]=cnt%,cnt/=;
}
while(cnt)
{
ai[len]=cnt%;
cnt/=,len++;
}
while(len>&&!ai[len-]) len--;
}
void print()
{
for(int i=len-;i>=;i--) putchar(ai[i]+'');
putchar('\n');
}
};
struct int666 ans;
int n,tot,ai[maxn],m,pi[maxn*],num,bi[maxn*];
bool if_p[maxn*];
inline void in(int &now)
{
int if_z=;now=;
char Cget=getchar();
while(Cget>''||Cget<'')
{
if(Cget=='-')if_z=-;
Cget=getchar();
}
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
now*=if_z;
}
void euler(int lit)
{
for(int i=;i<=lit;i++)
{
if(!if_p[i]) pi[++num]=i;
for(int v=;pi[v]*i<=lit&&v<=num;v++)
{
if_p[i*pi[v]]=true;
if(i%pi[v]==) break;
}
}
}
void apart(int now,int di)
{
int temp=now;
for(int v=;v<=num;v++)
{
now=temp;
while(now)
{
bi[v]+=di*now/pi[v];
now/=pi[v];
}
}
}
int main()
{
// freopen("bzoj_1005.in","r",stdin);
// freopen("bzoj_1005.out","w",stdout);
ans.len=,ans.ai[]=;
in(n),euler(maxn-);
if(n==)
{
int pos;
in(pos);
if(pos<=) printf("");
else printf("");
return ;
}
for(int i=;i<=n;i++)
{
in(ai[i]);
if(!ai[i])
{
printf("");
return ;
}
if(ai[i]==-) m++;
else tot+=--ai[i];
}
if(tot>n-)
{
puts("");
return ;
}
apart(n-,),apart(n--tot,-);
for(int i=;i<=n;i++) if(ai[i]) apart(ai[i],-);
for(int i=;i<=num;i++)
{
for(int v=;v<=bi[i];v++) ans.mul(pi[i]);
}
for(int i=;i<=n--tot;i++) ans.mul(m);
ans.print();
return ;
}

AC日记——明明的烦恼 bzoj 1005的更多相关文章

  1. AC日记——[HEOI2012]旅行问题 bzoj 2746

    2746 思路: 建立ac自动机,然后把fail树抽出来: 然后在fail树上走lca(神奇): 代码: #include <cstdio> #include <vector> ...

  2. AC日记——[HNOI2008]GT考试 bzoj 1009

    1009 思路: KMP上走DP(矩阵加速): DP[i][j]表示当前在第i位,同是匹配到不吉利串的第j位的方案数: 代码: #include <bits/stdc++.h> using ...

  3. AC日记——Mato的文件管理 bzoj 3289

    3289 思路: 莫队求区间逆序对个数,树状数组维护: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 500 ...

  4. AC日记——[Scoi2010]序列操作 bzoj 1858

    1858 思路: 恶心: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct Tree ...

  5. AC日记——[ZJOI2007]报表统计 bzoj 1058

    1058 思路: 平衡树的题: 然而我的平衡树写一次炸一次QwQ: 而且各种tle: 所以stl水过: 代码: #include <set> #include <cstdio> ...

  6. AC日记——[JSOI2007]建筑抢修 bzoj 1029

    1029 思路: 贪心,而且,stl水过: 然而神特么输出que.size()就错! 代码: #include <queue> #include <cstdio> #inclu ...

  7. AC日记——[JSOI2008]火星人prefix bzoj 1014

    1014 思路: 平衡树+二分答案+hash: 好了懂了吧. 代码: #include <cstdio> #include <cstring> #include <ios ...

  8. AC日记——[HAOI2007]覆盖问题 bzoj 1052

    1052 思路: 二分答案: 二分可能的长度: 然后递归判断长度是否可行: 先求出刚好覆盖所有点的矩形: 可行的第一个正方形在矩形的一个角上: 枚举四个角上的正方形,然后删去点: 删去一个正方形后,递 ...

  9. AC日记——[SCOI2008] 着色方案 bzoj 1079

    1079 思路: dp: 我们如果dp方程为15维,每维记录颜色还有多少种: 不仅tle,mle,它还re: 所以,我们压缩一下dp方程: 方程有6维,第i维记录有多少种颜色还剩下i次: 最后还要记录 ...

随机推荐

  1. SpringMVC源码解析-HTTP请求处理和分发

    1.HandlerMapping的配置和设计 在初始化完成时,所有的handlerMapping都已经被加载,handlerMapping存储着HTTP请求对应的映射数据,每一个handlerMapp ...

  2. select2 全拼以及首字母

    转自:https://blog.csdn.net/kanhuadeng/article/details/78475317 具体实现方法为: 首先需要在网上下载select2的源码,并引入到项目中,具体 ...

  3. YAML schema reference

    YAML schema reference 10/30/2018 14 minutes to read Azure Pipelines Here's a detailed reference guid ...

  4. 【java】AES加密解密|及Base64的使用

    转载自:http://www.cnblogs.com/arix04/archive/2009/10/15/1511839.html AES加解密算法,使用Base64做转码以及辅助加密: packag ...

  5. vue实现菜单权限控制

    大家在做后台管理系统时一般都会涉及到菜单的权限控制问题.当然解决问题的方法无非两种——前端控制和后端控制.我们公司这边的产品迭代速度较快,所以我们是从前端控制路由迭代到后端控制路由.下面我会分别介绍这 ...

  6. 图论:最短路-Bellman-Ford

    我们之前介绍了一种,(最常用的)SPFA算法,SPFA算法是对Bellman-Ford算法的队列优化,用队列替代了Bellman-Ford中的循环检查部分 然后这里我们介绍Bellman-Ford算法 ...

  7. elk相关

    curl http://localhost:9200/_aliases?pretty=1 #列出elk中所有索引

  8. How GitLab uses Unicorn and unicorn-worker-killer

    GitLab uses Unicorn, a pre-forking Ruby web server, to handle web requests (web browsers and Git HTT ...

  9. Flume 入门--几种不同的Sinks

    主要介绍几种常见Flume的Sink--汇聚点 1.Logger Sink 记录INFO级别的日志,一般用于调试.前面介绍Source时候用到的Sink都是这个类型的Sink 必须配置的属性: 属性说 ...

  10. POJ 30253 Fence Repair (二叉树+优先队列)

    题目链接 Description Farmer John wants to repair a small length of the fence around the pasture. He meas ...