【uoj129】 NOI2015—寿司晚宴
http://uoj.ac/problem/129 (题目链接)
题意
给出2~n这n-1个数,求选2个集合,使得从两集合中任意各选取1个数出来它们都互质。求方案数。
Solution
细节
最后更新f的时候要取模再加模再取模,因为两个g加起来就是2P了,再加个P就加爆了→_→,我还是图样
代码
// uoj129
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#define LL long long
#define inf 2147483647
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; const int maxn=1010,maxs=1ll<<8;
int f[maxs][maxs],g[2][maxs][maxs],id[100],bin[30];
int n,P;
struct data {int s,k;}a[maxn]; bool cmp(data a,data b) {
return a.k<b.k;
}
int main() {
scanf("%d%d",&n,&P);
id[2]=0,id[3]=1,id[5]=2,id[7]=3,id[11]=4,id[13]=5,id[17]=6,id[19]=7;
bin[0]=1;for (int i=1;i<=20;i++) bin[i]=bin[i-1]<<1;
for (int i=2;i<=n;i++) {
int x=i,y=2;
while (x!=1 && y<20) {
while (x%y==0) a[i-1].s|=bin[id[y]],x/=y;
y++;
}
a[i-1].k=x;
}
sort(a+1,a+n,cmp);
f[0][0]=1;
for (int i=1;i<n;i++) {
if (i==1 || a[i].k==1 || a[i].k!=a[i-1].k) {
memcpy(g[0],f,sizeof(f));
memcpy(g[1],f,sizeof(f));
}
for (int j=bin[8]-1;j>=0;j--)
for (int k=bin[8]-1;k>=0;k--) {
if (!(k&a[i].s)) (g[0][j|a[i].s][k]+=g[0][j][k])%=P;
if (!(j&a[i].s)) (g[1][j][k|a[i].s]+=g[1][j][k])%=P;
}
if (i==n-1 || a[i].k==1 || a[i].k!=a[i+1].k)
for (int j=0;j<bin[8];j++)
for (int k=0;k<bin[8];k++)
f[j][k]=((g[0][j][k]+g[1][j][k]-f[j][k])%P+P)%P;
}
int ans=0;
for (int i=0;i<bin[8];i++)
for (int j=0;j<bin[8];j++)
if (!(i&j)) (ans+=f[i][j])%=P;
printf("%d\n",ans);
return 0;
}
【uoj129】 NOI2015—寿司晚宴的更多相关文章
- BZOJ4197 / UOJ129 [Noi2015]寿司晚宴
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- UOJ129 NOI2015 寿司晚宴 数论、状压DP
传送门 数论题\(n \leq 500\)肯定是什么暴力算法-- 注意到每一个数\(> \sqrt{n}\)的因子最多只有一个,这意味着\(> \sqrt{n}\)的因子之间是独立的,而只 ...
- [BZOJ4197][Noi2015]寿司晚宴
4197: [Noi2015]寿司晚宴 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 412 Solved: 279[Submit][Status] ...
- BZOJ 4197: [Noi2015]寿司晚宴( dp )
N^0.5以内的质数只有8个, dp(i, j, k)表示用了前i个大质数(>N^0.5), 2人选的质数(<=N^0.5)集合分别为j, k时的方案数. 转移时考虑当前的大质数p是给哪个 ...
- BZOJ_4197_[Noi2015]寿司晚宴_状态压缩动态规划
BZOJ_4197_[Noi2015]寿司晚宴_状态压缩动态规划 Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被 ...
- [NOI2015]寿司晚宴 --- 状压DP
[NOI2015]寿司晚宴 题目描述 为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴. 小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了n−1种不同的寿 ...
- 【BZOJ4197】[Noi2015]寿司晚宴 状压DP+分解质因数
[BZOJ4197][Noi2015]寿司晚宴 Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴 ...
- [UOJ#129][BZOJ4197][Noi2015]寿司晚宴
[UOJ#129][BZOJ4197][Noi2015]寿司晚宴 试题描述 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司 ...
- BZOJ 4197: [Noi2015]寿司晚宴 状态压缩 + 01背包
4197: [Noi2015]寿司晚宴 Time Limit: 10 Sec Memory Limit: 512 MB Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿 ...
- BZO4197 & 洛谷2150 & UOJ129:[NOI2015]寿司晚宴——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4197 https://www.luogu.org/problemnew/show/P2150 ht ...
随机推荐
- 【LeetCode算法题库】Day4:Regular Expression Matching & Container With Most Water & Integer to Roman
[Q10] Given an input string (s) and a pattern (p), implement regular expression matching with suppor ...
- vue mock(模拟后台数据) +axios 简单实例(二)
需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东, 如,继(一) //组件<template> <div> &l ...
- markdown | Latex | 书写测试
我永远喜欢markdown! 建图 graph TD; 1-->2 1-->3 1-->4 2-->5 2-->6 3-->7 3-->8 4-->9 ...
- lsmod命令详解
基础命令学习目录首页 原文链接:http://blog.sina.com.cn/s/blog_e6b2465d0101fuev.html lsmod——显示已载入系统的模块 lsmod 其实就是lis ...
- 20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
20172319 2018.04.01-04.11 <Java程序设计>第5周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错 ...
- 一个web项目中间的团队管理
一个web项目中间的团队管理 最近在参加一个比赛,我们选的题目是:MOOC大型网络在线课堂.这个题目是我们五个人都想做的,我们的成员都是志同道合的五个人. 作为团队的统率者: 定义规范 ...
- Python对list去重
Python对list去重 方法一 新建新的列表,利用not in命令去重.这种方法看起来不够简便,但是保留了原列表中的顺序.代码如下: list1 = [1,2,3,4,1,1,2,5,4,3] l ...
- 第一次Sprint计划
目标: 各成员先学习基于eclipse开发android应用软件的基本技术(砍柴要先磨刀,工具都没怎么做) 先弄一个简单的四则运算答题功能看看程序是否能在手机上运行 (以上为冲刺一内容) 时间: 5月 ...
- 数据结构复习笔记(ADT栈/LIFO表)
栈是一种特殊的表,只在表首进行插入和删除操作,表首称之为栈顶,表尾称为栈底:栈的核心原则是先进后出,简称Last In First Out(LIFO表):常用的运算有:1.是否为空栈判断:2.栈是否满 ...
- iOS 如何改变搜索取消按钮的值和颜色
在初始化的时候加上下面两句就行了,试了无数方法,什么遍历查找子元素啊什么的都白搭,也不知道为啥还说可以,下面代码测试是有效果的: //改变搜索取消按钮的文字颜色 [[UIBarButtonItem a ...