bzoj2052: Pku1777 Vivian
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2052
2052: Pku1777 Vivian
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 28 Solved: 14
[Submit][Status][Discuss]
Description

Input
Output
Sample Input
Sample Output
HINT
Source
梅森素数。。。
没写这道题之前根本不知道梅森素数。。。好像如果f(n)=sigma(d|n,d)=2^k,n一定是不重复的梅森素数之积,且k=梅森指数之和。。。
具体看这篇吧:http://blog.csdn.net/acm_cxlove/article/details/7860735
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int k,cnt,pp[]={,,,,,,,},sum[],ans;
long long p[]={,,,,,,,};
bool v[];
int calc(int x){
int y=;
for(int i=;i<;i++)
if(x%p[i]==){
x/=p[i];y=y+(<<i);
}
if(x!=)return -;
return y;
}
int main(){
//freopen("data.in","r",stdin);
//freopen("data.out","w",stdout);
for(int i=;i<;i++)
for(int j=;j<;j++)
if(i&(<<j))sum[i]+=pp[j];
while(~scanf("%d",&k)){
memset(v,,sizeof(v));v[]=;
for(int i=;i<=k;i++){
int x;scanf("%d",&x);
x=calc(x);
if(x==-)continue;
for(int j=;j;j--)
if((j&x)==x&&v[j^x])v[j]=;
}
ans=;
for(int i=;i<;i++)
if(v[i]&&sum[i]>ans)ans=sum[i];
if(ans)printf("%d\n",ans);
else printf("NO\n");
}
return ;
}
bzoj2052: Pku1777 Vivian的更多相关文章
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Vivian's Problem UVA - 1323(梅林素数+状压二进制)
借鉴:https://blog.csdn.net/miku23736748/article/details/52135932 https://blog.csdn.net/acm_cxlove/arti ...
- UVALIVE 2955 Vivian's Problem
参考: http://blog.csdn.net/acm_cxlove/article/details/7860735 感觉这里需要记录一下 #include <map> #include ...
- LA2955 Vivian难题——梅森素数
题意 输入 $k$(1 \leq k \leq 100)个正整数 $p_1, p_2, ..., p_k$(1 < p_i < 2{31}),找出 $k$ 个非负整数 $e_i$ 使得 $ ...
- JavaScript面向对象和原型函数
对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模 ...
- vim /vi中对字符串的查找并替换
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- tyvj1086 Elevator
背景 广东汕头聿怀初中 Train#2 Problem4 描述 现有N种箱子,每种箱子高度H_i,数量C_i.现选取若干箱子堆成一列,且第i种箱子不能放在高度超过A_i的地方.试求最大叠放高度. 输入 ...
- vim基本命令之剪切复制粘贴替换
首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了 ...
- vi、vim 查找替换
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
随机推荐
- git commit
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中. Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地 ...
- [SQL基础教程] 4-2 数据删除(DELETE)
[SQL基础教程] C4 数据更新 4-2 数据删除(DELETE) DROP TABLE / DELETE DROP TABLE - 完全删除表 DELETE - 仅删除数据,保留表容器 DELET ...
- My Eclipse Security Alert
SECURITY ALERT: INTEGRITY CHECK ERROR This product did not pass the MyEclipse integrity check. This ...
- delphi 输入文件相对路径的更改,更改成用户的
- 记JavaScript的入门学习(二)
2016年11月25号,利用上午时间学习了JavaScript的数据类型和变量,下午就该去图书馆泡书了. 看完变量的本章节,发现我可能不能一天结束,那我就利用上午和晚上九点回来的时间完成吧.把心态调整 ...
- 冰刃IceSword中文版 V1.22 绿色汉化修正版
软件名称: 冰刃IceSword中文版 V1.22 绿色汉化修正版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 2.1MB 图片预览: 软件简介: Ic ...
- java输出菱形
package test; public class Test { public static void main(String[] args) { for(int i=1;i<=4;i++){ ...
- mysql的数据类型与列属性
- Photoshop定义画笔选区为空的原因
定义画笔预设时,选择选区后需填充黑色,否则将出现选区为空的提示
- Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 & Socket编程基础)
FTP作业 本节内容: 面向对象高级语法部分 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 参考:http://www.cnblogs.com/wupeiqi/ ...