URAL 2047 Maths 打表 递推

Maths
Time Limit: 20 Sec

Memory Limit: 256 MB

题目连接

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87157#problem/B

Description

Android Vasya attends Maths classes. His group started to study the number theory recently. The teacher gave them several tasks as a homework. One of them is as follows.
There is an integer n. The problem is to find a sequence of integers a1, …, an such that for any k from 2 to n the sum a1 + … + ak has exactly ak different positive divisors. Help Vasya to cope with this task.

Input

The only line contains an integer n (2 ≤ n ≤ 100 000).

Output

If there is no such sequence output “Impossible”. Otherwise output space-separated integers a1, …, an (1 ≤ ai ≤ 300).

Sample Input

3

Sample Output

1 3 4

HINT

 

题意

让你构造n个数,要求a1+……+ak的和的因子数恰好为ak

题解

假设我们已经构造出了ak,且前缀和sum已知,那么ak-1=sum-ak,这个是显然的结论

于是我们直接打表打出来100000位就好了,然后把sum求出来,然后前面直接递推就好了

代码:

打表程序:

#pragma comment(linker, "/STACK:102400000,102400000")#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define test freopen("test.txt","r",stdin)  
#define maxn 2000001
#define mod 1000000007
#define eps 1e-9
const int inf=0x3f3f3f3f;
const ll infll = 0x3f3f3f3f3f3f3f3fLL;
inline ll read()
{ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
//**************************************************************************************int cnt[300*200010];
vector<int> Q;
int flag=0;
int n;
void dfs(int N,int sum,int z)
{if(flag)return;if(sum+z>300*100000)return;if(N>1&&cnt[sum]!=z)return;if(N==n){printf("%d",Q[0]);for(int i=1;i<Q.size();i++)printf(" %d",Q[i]);printf("\n");cout<<sum<<endl;flag=1;return;}for(int i=1;i<=300;i++){Q.push_back(i);dfs(N+1,sum+i,i);Q.erase(Q.end()-1);}}
int main()
{freopen("1.out","w",stdout);for(int i=1;i<=300*100010;i++){for(int j=i;j<300*100010;j+=i){cnt[j]++;}}n=read();Q.clear();flag=0;for(int i=1;i<=300;i++){Q.push_back(i);dfs(1,i,i);Q.erase(Q.end()-1);}if(flag==0)printf("Impossible\n");
}

AC程序:

#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define test freopen("test.txt","r",stdin)  
#define maxn 20001
#define mod 1000000007
#define eps 1e-9
const int inf=0x3f3f3f3f;
const ll infll = 0x3f3f3f3f3f3f3f3fLL;
inline ll read()
{ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
//**************************************************************************************
const int N=2000000;
int cnt[N];
int a[N],sum=0;
vector<int> Q;
int flag=0;
int n;
int tot;
int main()
{for(int i=1;i<N;i++){for(int j=i;j<N;j+=i)cnt[j]++;}for(int p=1586335,i=100000;i>0;p-=cnt[p],i--){a[i]=cnt[p];sum+=a[i];}n=read();for(int i=1;i<n;i++) printf("%d ",a[i]);printf("%d\n",a[n]);
}

 

转载于:https://www.cnblogs.com/qscqesze/p/4718887.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)

Java语言自JDK1.0版本以来经历了许多次更新&#xff0c;也在基本程序库中增加了大量的类别和包。从J2SE 1.4开始&#xff0c;Java语言的变动由 Java Community Process&#xff08;JCP&#xff09;管理&#xff0c;JCP使用Java规范请求&#xff08;Java Specification Requests…

计算机网络路由选择协议,IP路由选择协议原理和作用

IP路由选择协议原理和作用(2008-10-20 19:26:17)标签&#xff1a;杂谈IP路由选择如果目的主机与源主机直接相连或都在一个共享网络上,那就直接把包发送到目的主机,如果不是,那把ip数据报送到默认路由器,由它转发路由器使用路由表保存自己知道的网络的信息,它包括:目的IP地址,它…

LeetCode 2000. 反转单词前缀

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。 找出 ch 第一次出现的下标 i &#xff0c;反转 word 中从下标 0 开始、直到下标 i 结束&#xff08;含下标 i &#xff09;的那段字符。 如果 word 中不存在字符 ch &#xff0c;则无需进…

oss图片跨域问题_图片存储解决方案-阿里云对象存储

开通对象存储OSS1. 打开阿里云官网&#xff0c;选择产品对象存储 OSS 2.开通对象存储OSS 需要支付宝扫码登录3.进入管理控制台 4.新建存储空间 5.跨域资源共享(CORS)的设置管理文件整合Springboot实现图片上传服务端签名直传并设置上传回调 : 在服务端完成签名&#xff0c;并且…

2015-8-10工作日志

1. 工作规划&#xff1a;完成系统请假管理的功能。 &#xff08;1&#xff09;根据系统需求完成请假管理model&#xff1b; &#xff08;2&#xff09;进行请假流程的deployment&#xff1b; &#xff08;3&#xff09;进行请假流程的流程定义管理&#xff1b; &#xff08;4&a…

会理天气预报软件测试,会理天气预报15天

发送给QQ好友★会理未来15天天气预报★会理天气预报7月22日 星期四:阵雨&#xff0c;18C~28C无持续风向&#xff0c;小于3级会理天气预报7月23日 星期五:阵雨&#xff0c;18C~28C无持续风向&#xff0c;小于3级会理天气预报7月24日 星期六:阵雨&#xff0c;18C~27C无持续风向&a…

LeetCode 2001. 可互换矩形的组数

文章目录1. 题目2. 解题1. 题目 用一个下标从 0 开始的二维整数数组 rectangles 来表示 n 个矩形&#xff0c;其中 rectangles[i] [widthi, heighti] 表示第 i 个矩形的宽度和高度。 如果两个矩形 i 和 j&#xff08;i < j&#xff09;的宽高比相同&#xff0c;则认为这两…

google 浏览器默认打开控制台_前端开发调试:浏览器console方法总结

今天突发奇想&#xff0c;准备总结下console的各个函数。以前都是只用一个console.log(),查了一下发现有好多&#xff0c;就记下来&#xff0c;方便以后查阅。速记consoleConsole对象提供浏览器控制台的接入&#xff0c;不同浏览器是不一样的&#xff0c;这里介绍普遍存在的Con…

计算机兴趣小组活动总结,兴趣小组活动总结优秀范文

总结&#xff0c;可以把零散的、肤浅的感性认识上升为系统、深刻的理性认识&#xff0c;从而得出科学的结论&#xff0c;以便发扬成绩、克服缺点、吸取经验教训&#xff0c;使今后的工作少走弯路、多出成果。下面是小编给大家精心挑选的工作总结&#xff0c;希望能帮助到大家!本…

江小白包装设计原型_雪碧和江小白的品牌跨界合作之旅可谓是一场品牌包装的视觉盛宴...

大家好&#xff0c;我是古小一&#xff0c;一个行走在酒水品牌包装设计不归路上的小编&#xff01;当下品牌间的跨界合作越来越多&#xff0c;消费者不但有审美疲劳的趋势&#xff0c;脑洞过大的跨界还容易引发群嘲。不过好在有热情网友的帮助&#xff0c;雪碧与江小白已经自然…

LeetCode 2002. 两个回文子序列长度的最大乘积(状态压缩+枚举状态子集+预处理)

文章目录1. 题目2. 解题2.1 超时2.2 预处理优化1. 题目 给你一个字符串 s &#xff0c;请你找到 s 中两个 不相交回文子序列 &#xff0c;使得它们长度的 乘积最大 。 两个子序列在原字符串中如果没有任何相同下标的字符&#xff0c;则它们是 不相交 的。 请你返回两个回文子…

2018年计算机CPU纳米制程,AMD发大招,推出7纳米制程CPU与GPU

原标题&#xff1a;AMD发大招&#xff0c;推出7纳米制程CPU与GPU处理器及图形芯片大厂AMD&#xff0c;7日凌晨在美国旧金山举办的技术大会上&#xff0c;正式公布了自家在CPU及GPU两部分的7纳米制程产品。其中&#xff0c;在GPU部分是Radeon Instinct MI60/MI50专业显示卡&…

[hdu5372 Segment Game]树状数组

题意&#xff1a;有两种操作&#xff1a;(1)插入线段&#xff0c;第i次插入的线段左边界为Li&#xff0c;长度为i (2)删除线段&#xff0c;删除第x次插入的线段。每次插入线段之前询问有多少条线段被它覆盖。 思路&#xff1a;由于插入的线段长度是递增的&#xff0c;所以第i次…

怎样从php转向java_Github标星10.8K!Java 实战博客项目分享

点击上方 Java后端&#xff0c;选择 设为星标优质文章&#xff0c;及时送达来源&#xff1a;开源最前线(ID&#xff1a;OpenSourceTop)作为程序员每天就是不停的敲代码&#xff0c;改Bug&#xff0c;写起代码来那真是行云如流水&#xff0c;但要你码出点文字&#xff0c;写点技…

腾讯邮件服务器发送慢,通过腾讯邮件服务器发送HTML邮件

邮件发送工具&#xff1a;private static String host "smtp.exmail.qq.com";// 服务器地址private static String port "465";// 端口private static String protocol "smtp";// 协议public static Session initProperties(String account, …

Docker 部署一个用 Python 编写的 Web 应用

文章目录1. 安装 docker2. 编写代码3. 编写 Dockerfile4. 上传镜像5. 修改镜像learn from 《深入剖析Kubernetes》1. 安装 docker 在 WSL2 中安装 docker https://www.runoob.com/docker/ubuntu-docker-install.html 会报错&#xff1a; # Executing docker install script, …

三维网格精简算法java版_几种常见算法的精简版-

1 packagetest;23 importjava.nio.channels.SelectableChannel;45 importcom.itqf.bean.User;67 public classcTypeCode {89 /********************************************希尔排序和插入排序*******推荐严慧敏的那本数据结构&#xff0c;思想步骤我都加入到算法里面了&#…

DokuWiki 命名空间管理

为了更好的组织结构&#xff0c;Dokuwiki提供了命名空间这个功能&#xff0c;那怎么管理命名空间的&#xff0c;其实可以安装插件去管理 Add New Page Plugin&#xff1a;新建界面 https://www.dokuwiki.org/plugin:addnewpage Move Plugin&#xff1a;方便移动页面和命名空间 …

css样式子绝父相,子绝父相_HTML+CSS前端基础知识教程_腾讯视频

更多资料源码请加3252897743第1天 html 1、HTTP协议 2、html是纯文本3、html骨架4、DTD文档类型5、head标签6、body标签7、html基本语法8、h系列的标签9、p标签10、img标签11、a标签12、div和span含义第2天 html1、无序列表2、有序列表3、定义列表6、表格基础7、合并单元格…

shell命令查阅端口信息_linux运维实用的42个常用命令总结

1.删除0字节文件复制代码代码如下:find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列复制代码代码如下:ps -e -o "%C : %p : %z : %a"|sort -k5 -nr3.按cpu利用率从大到小排列复制代码代码如下:ps -e -o "%C : %p : %z : %a"|sort -nr…