HDUnbsp;1215--七夕节

2024-06-03 19:32
文章标签 七夕节 hdunbsp 1215

本文主要是介绍HDUnbsp;1215--七夕节,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

七夕节

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 2628 Accepted Submission(s): 986


Problem Description
七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!"
人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:

HDU <wbr>1215--七夕节

数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6.
你想知道你的另一半吗?
Input
输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000).
Output
对于每组测试数据,请输出一个代表输入数据N的另一半的编号.
Sample Input
3
2
10
20
Sample Output
1
8
22

 

当时看到数据范围只有500000,于是就想到暴力求解。结果这一  力就出问题了,OJ毫不留情的给了个TLE。想一想,从结果看来,应该是测试实例很多的原因,于是,这 直接导致全场悲剧,AC率极低。遇到TLE情况,无非就是优化算法,这其中就有一种常用的方法,就是先把 所有的结果给储存起来,这样虐时就不是问题了。先注意到任何一个数的任何一个因子是其约数,这个道 理大家都懂,但真正注意到的人就少了。其实利用这个性质这道题解决了,即开一个a[500000]的数组,筛 选法,双层循环进行累加。为了缩减time,第一层从i=2开始,第二层从第j=i+i开始,依次a[j]+=i进行累 加,最后输出时对每个因子和加一 就可以了,这样就达到了储存因子和的目的 代码:

 

#include
#include
#include
int main()
{
      int *sfactor,i,j,n,t;
      sfactor=(int*)malloc(500001*sizeof(int));
      memset(sfactor,0,500001*sizeof(int));
      for(i=2;i<=250000;i++)
              for(j=i+i;j<500001;j+=i)
                      sfactor[j]+=i;
      scanf("%d",&t);
      while(t--)
      {
              scanf("%d",&n);
              printf("%d\n",sfactor[n]+1);
      }
      return 0;
}

这篇关于HDUnbsp;1215--七夕节的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027899

相关文章

hdu1215 七夕节 (数学:求因子之和)

给出一个n,求n除本身以外所有因子的和 开始的思路就是枚举2到n/2,判断是否为n的因子 超时了,这个时候时间接近500000*500000 接着看到一个不错的写法,不需要枚举到n/2 因为因子都是两两对应的,找到一个因子,必然可以知道另一个因子 所以只需枚举到sqrt(n)即可,这个时候不会超时 代码如下: #include <math.h>#include <stdio.h

关于Mysql建外键报1215错误

今天在mysql中建外键,一直报1215的错误,找了许久才找到了解决办法。 原因:建外键的时候,外键的类型是int型。引用的主键类型也是int型,并且所有的主键均设计的自增, 这个时候,实际我的这个主键的字段类型是unsigned int,主键和外键的类型不统一,所以会报错,无法添加外键了。 解决方法:将主键字段改为无符号整形,并且外键的字段类型也改为无符号整形。 然后添加外键,一

1215 Cannot add the foreign key constraint

使用navicat创建外键约束的时候出错了,一直报如题的错误,而且还死活过不了。 原因:两个字段的属性不同,一个允许为空,一个不允许。 解决:被约束的外键和被关联的主键属性要一样,比如: 类型名,长度,无符号,允许空值之类的。

七夕节程序员应有的表白方式

其实七夕节与我们程序员有什么关系,什么节我们都跟往常一样不停的在写bug,改bug;这样看起来我们程序员很无趣了,但是我们也有一颗浪漫的心,但是却没处绽放。所以我写了一个简单的七夕告白的网页送给大家,望你们也早日脱单(ps:其实说得是我拉)。 我们回归正题,先看一下我们的效果;能不能达到你想要的目的 怎么样,是不是看起来很炫酷啊,那就赶紧发给你们的另一半吧 下载地址 更简单的七夕告白页

1215: 牙哥有奖品

1215: 牙哥有奖品 1.描述 牙哥有奖品啊,牙哥有奖品,那么奖品是什么呢? 据小道消息,牙哥最近买了很多棒棒糖,但是牙哥又不想把棒棒糖拿出来让小伙伴们吃,他出了一道难题,并且许诺只要解出此题,就可以找牙哥领棒棒糖一个。、 那么,等什么呢,领棒棒糖吧! 如果牙哥不给糖的话,相信你们知道怎么做的~~~ 输入 多组测试数据,输入两个正整数n和m(n!=m,1<=n,m<=10000)。

1215: 【C4】【搜索】【回溯】数字全排列

题目描述 排列与组合是常用的数学方法。 先给一个正整数 ( 1 < = n < = 5 ) 。例如n=3,列出所有组合,并且按字典序输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1  输入 输入一个整数n(  1<=n<=5) 输出 输出所有全排列 每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格) 样例输入 3 样例输出 1 2 3

hdunbsp;1007nbsp;平面最近点对nbsp;nbsp;随机增量…

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1007   题目大意:求平面内最近点对的距离   考查点:求平面最近点对的较快算法,(二分或随机增量)   思路:当我们确定了一个两点之间的距离r以后,就可以在平面上画出一个正方形表格来 正方形的边长为r,这样可能与点x更新r的点只能在x所在点的8个方向及自己所在格子。 这样我们就可以将问题的

hdunbsp;1394

解题报告 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意:给定序列,序列可变换即将前面i个移到序列后边,问经过变换可得到的最小的逆序数是多少? 思路:最近状态一塌糊涂啊,一开始居然连怎样利用求和的思想去就逆序数都不会了,想了半天也没想起来,看了看别人的解题报告才又一次恍然大悟,就是记录每个数字在他之前一共出现了多少个比他小

hdu 1215 七夕节

主题思想 ,求因子和,打表,求因子,还是需要点技巧的。 求 maxn 以内数的因子和 代码: int m=maxn/2;memset(a,0,sizeof(a));for(int i=1;i<=m;i++){// j must can divide by i j%i is 0for(int j=2*i;j<maxn;j+=i){a[j]=a[j]+i;}} AC 代码: #inclu

AcWing 1215. 小朋友排队 (树状数组)

n n n 个小朋友站成一排。 现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。 开始的时候,所有小朋友的不高兴程度都是 0 0 0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加 1 1 1,如果第二次要求他交换,则他的不高兴程度增加 2 2 2(即不高兴程度为 3 3 3),依次类推。当要求某个小朋友第