CF 2013-2014CTS01E04(Killer Challenge-将质因数存在 进行Bitmask)
首先,把P进行质因数分解,每一个不用的质因数压成1位
f[i][j]表示1前i位用j“拥有”的质因数表示。
然后都懂得。。。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#include<cmath>
#include<cctype>
#include<cassert>
#include<climits>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define RepD(i,n) for(int i=n;i>=0;i--)
#define MEM(a) memset(a,0,sizeof(a))
#define MEMI(a) memset(a,127,sizeof(a))
#define MEMi(a) memset(a,128,sizeof(a))
#define INF (2139062143)
#define F (1000000009)
#define MAXN (1000+10)
#define MAXM (1000+10)
typedef long long ll;
int T,n,P,p[MAXN],m,a[MAXN],s[MAXN],w[MAXN][MAXN],bin[MAXN],f[MAXN][MAXM];
int main()
{
freopen("CF-2013CTS01E04-challenge.in","r",stdin);
cin>>T;
bin[1]=1;Fork(i,2,30) bin[i]=bin[i-1]<<1;
// For(i,30) cout<<bin[i]<<' ';
while(T--)
{
cin>>n>>P;m=0;
int P2=P;
Fork(i,2,sqrt(P))
if (P%i==0)
{
P/=i;
p[++m]=i;
}
if (P) p[++m]=P;
P=P2;
s[0]=0; For(i,n) cin>>a[i],s[i]=s[i-1]+a[i];
//For(i,m) cout<<p[i]<<' ';cout<<endl;
// memset(w,0,sizeof(w));
For(i,n)
Fork(j,i,n)
{
w[i][j]=0;
int t=s[j]-s[i-1];
For(k,m)
if (t%p[k]==0) w[i][j]|=bin[k];
}
MEMI(f);
// cout<<w[2][2]<<endl;
For(i,n)
Rep(j,bin[m+1])
{
if ((w[1][i]&j)==j) f[i][j]=min(f[i][j],0);
Fork(k,i+1,n)
{
f[k][w[i+1][k]|j]=min(f[k][w[i+1][k]|j],f[i][j]+1);
}
}
int ans=1,mincut=0;
Rep(i,bin[m+1])
{
int t=1;
For(k,m) if (bin[k]&i) t*=p[k];
if (t>ans&&f[n][i]^INF)
{
ans=t;mincut=f[n][i];
}
}
cout<<ans<<' '<<mincut<<endl; }
while(1);
return 0;
}
CF 2013-2014CTS01E04(Killer Challenge-将质因数存在 进行Bitmask)的更多相关文章
- Kaggle Competition Past Solutions
Kaggle Competition Past Solutions We learn more from code, and from great code. Not necessarily alwa ...
- [PyData] 01 - Web Crawler
前言 一.总体策略 一些常见抓取数据的例子.三步走: 抓取数据并存储 <---- 数据处理 数据展示 二.学习资源 首先,通过Beautiful Soup抓取数据 from http://www ...
- [Kaggle] Online Notebooks
前言 Let's go to https://www.kaggle.com/ Kaggle Notebook 有实践记录的案例. 一.线性拟合噪声数据 [Sklearn] Linear regress ...
- CF Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
1. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort 暴力枚举,水 1.题意:n*m的数组, ...
- CF 757E Bash Plays with Functions——积性函数+dp+质因数分解
题目:http://codeforces.com/contest/757/problem/E f0[n]=2^m,其中m是n的质因子个数(种类数).大概是一种质因数只能放在 d 或 n/d 两者之一. ...
- CF 757 E Bash Plays with Functions —— 积性函数与质因数分解
题目:http://codeforces.com/contest/757/problem/E 首先,f0(n)=2m,其中 m 是 n 的质因数的种类数: 而且 因为这个函数和1卷积,所以是一个积性函 ...
- cf掉分记——Avito Code Challenge 2018
再次作死的打了一次cf的修仙比赛感觉有点迷.. 还好掉的分不多(原本就太低没法掉了QAQ) 把会做的前三道水题记录在这.. A: Antipalindrome emmmm...直接暴力枚举 code: ...
- CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数
题目大意: 求n!在b进制下末尾有多少个0 https://blog.csdn.net/qq_40679299/article/details/81167283 一个数在十进制下末尾0的个数取决于10 ...
- CF#235E. Number Challenge
传送门 可以理解为上一道题的扩展板.. 然后我们就可以YY出这样一个式子 ${\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)=\sum_{i=1}^a\sum_{ ...
随机推荐
- 【对象模型】C++模版的编译链接过程——编译器真的会检查所有tocken层面的错误么?
模版(template)设计的初衷,是设计一种自动实例化机制,不需要使用者参与,编译器可根据使用者提供的模版参数再套用类的定义来实例化.所谓实例化,除了包含对于程序变量的实例化,即开辟空间并设置某些变 ...
- 【BZOJ】【1024】【SCOI2009】生日快乐
枚举 想到以后一秒钟变水题…… 一开始我想:这不是可以随便切吗……但是突然想到:第一刀,必须切在n等分点上!因为要求最后每块的大小相等,那么同理,比如总共要切成7块,第一刀切成了$\frac{3}{7 ...
- 日志:slf4j+log4j+maven配置
代码的日志输出,前前后后折腾了我好几次. 本着会用,快速配置的原则,还是将配置过程记录下来,以便复用. 参考:http://blog.csdn.net/anialy/article/details/8 ...
- __int64 与long long 的区别 分类: Brush Mode 2014-08-14 10:22 64人阅读 评论(0) 收藏
//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int ...
- 笔直的水管 usaco 背包
背包dp入门,需要滚动数组: #include<iostream> #include<cstdio> #include<string> #include<cs ...
- Coding4Fun.Phone.Controls的使用
Coding4Fun.Phone.Controls的使用: windows phone的应用一直有一个特色,那就是方块(磁贴).之前的应用中,我一直都XXXX 来实现,原来其实一直有一个更加好的方法, ...
- mysql 函数,关键字,特性
## mysql 截取函数 left(),right(),substring(),substring_index()SELECT LEFT('www.baidu.com',3); # wwwSELEC ...
- MySql计数器,如网站点击数,如何实现高性能高并发的计数器功能
MySql计数器,如网站点击数,如何实现高性能高并发的计数器功能 Clicks: Date: -- :: Power By 李轩Lane TagMysql计数器高性能 现在有很多的项目,对计数器的实现 ...
- 解决Myeclipse 编辑jsp页面卡
解决Myeclipse 编辑jsp页面卡 编辑一个jsp页面时,如果每输入一下,CPU都100%一下,和大家分项一下. 问题: 当你编辑一个jsp页面时,如果每输入一下,CPU都100%一下,3, ...
- App自适应
http://blog.csdn.net/newjueqi/article/details/42779221