首先,把P进行质因数分解,每一个不用的质因数压成1位

f[i][j]表示1前i位用j“拥有”的质因数表示。

然后都懂得。。。

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<algorithm>
  6. #include<functional>
  7. #include<cmath>
  8. #include<cctype>
  9. #include<cassert>
  10. #include<climits>
  11. using namespace std;
  12. #define For(i,n) for(int i=1;i<=n;i++)
  13. #define Rep(i,n) for(int i=0;i<n;i++)
  14. #define Fork(i,k,n) for(int i=k;i<=n;i++)
  15. #define ForD(i,n) for(int i=n;i;i--)
  16. #define Forp(x) for(int p=pre[x];p;p=next[p])
  17. #define RepD(i,n) for(int i=n;i>=0;i--)
  18. #define MEM(a) memset(a,0,sizeof(a))
  19. #define MEMI(a) memset(a,127,sizeof(a))
  20. #define MEMi(a) memset(a,128,sizeof(a))
  21. #define INF (2139062143)
  22. #define F (1000000009)
  23. #define MAXN (1000+10)
  24. #define MAXM (1000+10)
  25. typedef long long ll;
  26. int T,n,P,p[MAXN],m,a[MAXN],s[MAXN],w[MAXN][MAXN],bin[MAXN],f[MAXN][MAXM];
  27. int main()
  28. {
  29. freopen("CF-2013CTS01E04-challenge.in","r",stdin);
  30. cin>>T;
  31. bin[1]=1;Fork(i,2,30) bin[i]=bin[i-1]<<1;
  32. // For(i,30) cout<<bin[i]<<' ';
  33. while(T--)
  34. {
  35. cin>>n>>P;m=0;
  36. int P2=P;
  37. Fork(i,2,sqrt(P))
  38. if (P%i==0)
  39. {
  40. P/=i;
  41. p[++m]=i;
  42. }
  43. if (P) p[++m]=P;
  44. P=P2;
  45. s[0]=0; For(i,n) cin>>a[i],s[i]=s[i-1]+a[i];
  46. //For(i,m) cout<<p[i]<<' ';cout<<endl;
  47. // memset(w,0,sizeof(w));
  48. For(i,n)
  49. Fork(j,i,n)
  50. {
  51. w[i][j]=0;
  52. int t=s[j]-s[i-1];
  53. For(k,m)
  54. if (t%p[k]==0) w[i][j]|=bin[k];
  55. }
  56. MEMI(f);
  57. // cout<<w[2][2]<<endl;
  58. For(i,n)
  59. Rep(j,bin[m+1])
  60. {
  61. if ((w[1][i]&j)==j) f[i][j]=min(f[i][j],0);
  62. Fork(k,i+1,n)
  63. {
  64. f[k][w[i+1][k]|j]=min(f[k][w[i+1][k]|j],f[i][j]+1);
  65. }
  66. }
  67. int ans=1,mincut=0;
  68. Rep(i,bin[m+1])
  69. {
  70. int t=1;
  71. For(k,m) if (bin[k]&i) t*=p[k];
  72. if (t>ans&&f[n][i]^INF)
  73. {
  74. ans=t;mincut=f[n][i];
  75. }
  76. }
  77. cout<<ans<<' '<<mincut<<endl;
  78.  
  79. }
  80. while(1);
  81. return 0;
  82. }

CF 2013-2014CTS01E04(Killer Challenge-将质因数存在 进行Bitmask)的更多相关文章

  1. Kaggle Competition Past Solutions

    Kaggle Competition Past Solutions We learn more from code, and from great code. Not necessarily alwa ...

  2. [PyData] 01 - Web Crawler

    前言 一.总体策略 一些常见抓取数据的例子.三步走: 抓取数据并存储 <---- 数据处理 数据展示 二.学习资源 首先,通过Beautiful Soup抓取数据 from http://www ...

  3. [Kaggle] Online Notebooks

    前言 Let's go to https://www.kaggle.com/ Kaggle Notebook 有实践记录的案例. 一.线性拟合噪声数据 [Sklearn] Linear regress ...

  4. 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的数组, ...

  5. CF 757E Bash Plays with Functions——积性函数+dp+质因数分解

    题目:http://codeforces.com/contest/757/problem/E f0[n]=2^m,其中m是n的质因子个数(种类数).大概是一种质因数只能放在 d 或 n/d 两者之一. ...

  6. CF 757 E Bash Plays with Functions —— 积性函数与质因数分解

    题目:http://codeforces.com/contest/757/problem/E 首先,f0(n)=2m,其中 m 是 n 的质因数的种类数: 而且 因为这个函数和1卷积,所以是一个积性函 ...

  7. cf掉分记——Avito Code Challenge 2018

    再次作死的打了一次cf的修仙比赛感觉有点迷.. 还好掉的分不多(原本就太低没法掉了QAQ) 把会做的前三道水题记录在这.. A: Antipalindrome emmmm...直接暴力枚举 code: ...

  8. CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数

    题目大意: 求n!在b进制下末尾有多少个0 https://blog.csdn.net/qq_40679299/article/details/81167283 一个数在十进制下末尾0的个数取决于10 ...

  9. CF#235E. Number Challenge

    传送门 可以理解为上一道题的扩展板.. 然后我们就可以YY出这样一个式子 ${\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^cd(ijk)=\sum_{i=1}^a\sum_{ ...

随机推荐

  1. SQL Server 动态管理视图(DMVs)

    DMV在本地部署的SQL Server中需要VIEW SERVER STATE的权限   和事务有关的DMV sys.dm_tran_active_transactions:返回与您的当前逻辑数据库的 ...

  2. ASP.NET MVC 4 插件化架构简单实现-思路篇

    用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点剥离出来,即使只是一个插 ...

  3. Matlab实现网络拓补图

    顶点号 顶点号 权值 1 2 400 1 3 450 2 4 300 2 8 230 2 9 140 3 4 600 4 5 210 4 19 310 5 6 230 5 7 200 6 7 320 ...

  4. 第k短路

    poj 2449 模板题  A*+spfa #include<iostream> #include<cstdio> #include<cstring> #inclu ...

  5. samba 常见问题

    今天帮一个朋友搭建samba服务器,发现总是无法正常访问,最后google+摸索搞定了,下面把遇到的问题和解决方法共享一下. 这里用的linux是centos版本6. 一开始遇到的问题是‘找不到网络路 ...

  6. 使用WCF服务的客户端出现maxReceivedMessageSize异常

    使用WCF服务的客户端出现maxReceivedMessageSize异常解决方案 当使用WCF的客户端调取的数据过多时,会出现这个异常.一般情况下,系统默认值是65536,大约容纳100-200条左 ...

  7. Codeforces Round #250 (Div. 2)

    感觉不会再爱了,呜呜! A题原来HACK这么多!很多人跟我一样掉坑了! If there is some choice whose description at least twice shorter ...

  8. 深入理解asp.net SessionState

    web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失. 于是, 状态管理就成了 ...

  9. 使用Assetbundle时可能遇到的坑

    原地址:http://www.cnblogs.com/realtimepixels/p/3652128.html 一 24 十一郎未分类 No Comments 转自 http://www.unity ...

  10. mysql存储过程和函数使用实例

    1.需求:根据输入的年份,月份,和当前系统的年份比较,不满1年按1年计算,多出1年11个月也按1年计算. 2.计算得出来的使用年份,计算车辆残值. 3.存储过程 DELIMITER $$ USE `d ...