hdu4473

这题的结果[f(1)+f(2)+...+f(n)]其实就等价于x*y*z<=n的解的个数,然后的方法几乎就是暴力枚举了。现场比赛的时候没想到这一点,太杯具了,浪费了两个小时的思考时间。其实我们的做法应该是可行的,因为f(n)具有积性性质,也就是若gcd(n, m)=1,则f(n*m)=f(n)*f(m)。而当p为质数时,f(p^k)=(k+1)*(k+2)/2,这样就能把f(n)数列的前n项和化成一堆多项式的加和。然后用合并同类项的思想,用容斥原理搞,可是代码量太大了,没打出来。。。

今天赛题被挂到HDOJ上以后用上面说的枚举方法打了一下,交上去居然WA,调了半天也没发现错误,最后才怀疑是sqrt和pow函数的精度问题,马上查了一下解题报告,果然都是手动写的开平方和开立方函数。加上以后就过了~~

/** hdu4473/win.cpp* Created on: 2012-11-17* Author    : ben*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#include <stack>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <functional>
#include <numeric>
#include <cctype>
using namespace std;
typedef long long LL;inline LL sqrt2(LL n) {LL m = (LL)sqrt(n + 0.0);while(m * m <= n)m++;while(m * m > n)m--;return m;
}inline LL sqrt3(LL n) {LL m = (LL) pow(n, 1 / 3.0);while (m * m * m <= n)m++;while (m * m * m > n)m--;return m;
}LL work(LL n) {LL ret = 0;LL t1 = sqrt3(n);ret += t1;for(LL a = 1; a <= t1; a++) {ret += 3 * (n / (a * a) - a);ret += 3 * (sqrt2(n / a) - a);LL t2 = sqrt2(n / a);for(LL b = a + 1; b <= t2; b++) {ret += 6 * (n / (a * b) - b);}}return ret;
}int main() {
#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);
#endifint t = 1;LL n;while(scanf("%I64d", &n) == 1) {printf("Case %d: %I64d\n", t++, work(n));}return 0;
}

转载于:https://www.cnblogs.com/moonbay/archive/2012/11/12/2766607.html

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

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

相关文章

https无法访问 宝塔_宝塔面板快速开启ssl(https)的方法

宝塔面板可以说在国内服务器配置方面是比较出名的&#xff0c;一些大的网站的服务器都是使用的宝塔面板&#xff0c;另外本博客作品的演示站点也是使用的宝塔面板。宝塔面板的操作与配置服务器环境对一些初入做站的将要跳坑的小白来说&#xff0c;就一件超越仙器的神器&#xf…

linux可以不用grub吗,既然不用Win了,那么GrubDOS也不用了。linux grub求指导

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼5、安装Grub到U盘上&#xff1a;[starlocalhost ~]$ sudo grub-install--root-directory/media/test/ /dev/sdbProbingdevices to guess BIOS drives. This may take a long time.Installationfinished. No error reported.This is…

raid 物理盘缓存状态_查看RAID状态

以下是组建服务器raid时查到的资料&#xff0c;做下笔记&#xff0c;没兴趣的朋友请无视。Linux下查看软、硬raid信息的方法。软件raid&#xff1a;只能通过Linux系统本身来查看cat /proc/mdstat可以看到raid级别&#xff0c;状态等信息。硬件raid&#xff1a; 最佳的办法是通过…

略读《大教堂与市集》

《大教堂与市集》&#xff08;The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary&#xff09;一书中提到了软工工程的两种开发模式&#xff0c;即大教堂模式和市集模式。作者认为“Given enough eyeballs, all bugs are shallow…

c语言time函数的作用,c语言中time函数的用法

c语言中time函数的用法的用法你知道吗&#xff1f;下面小编就跟你们详细介绍下c语言中time函数的用法的用法&#xff0c;希望对你们有用。c语言中time函数的用法的用法如下&#xff1a;头文件time.h函数名称: localtime函数原型: struct tm *localtime(const time_t *t…

测试nb信号的软件_NB-IOT的OTA测试(功率、灵敏度测试)

2017年7月25日新益技术实现了NB-IoT终端系统测试&#xff0c;在OTA暗室中完成了NB-IoT终端系统总辐射功率TRP(TotalRadiated Power)和总全向灵敏度TIS(Total Isotropic Sensitivity)测试。测试得到的360度全方位辐射和接收性能参数&#xff0c;为NB-IoT产品推向市场提供重要的参…

待研究

D3D中的Alpha颜色混合 &#xff08;http://www.cnblogs.com/flying_bat/archive/2007/09/20/900558.html&#xff09;转载于:https://www.cnblogs.com/chunyou128/archive/2012/11/14/2769334.html

linux内核多队列,Linux Kernel 中 Workqueue 使用系统默认队列和创建队列的方法

关于workqueue&#xff0c;我们还是有很多话要说。想必大家对workqueue相关的函数(schedule_work 、queue_work、INIT_WORK、create_singlethread_workqueue 等)都不陌生。但说起差异&#xff0c;可能还有许多话需要坐下来慢慢讲。对于workqueue&#xff0c;与之最为相关的两个…

linux扩容根目录空间_Linux系统扩容根目录磁盘空间的操作方法

Linux系统扩容根目录磁盘空间的操作方法一、使用背景Linux根目录磁盘空间不够用了&#xff0c;当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘&#xff0c;但是发现系统里的大小还是没改变。产生的原因是没有给磁盘格式化&#xff0c;没有增加分区。二、操作方法1.查看磁…

【ASP】文件上传

描述&#xff1a;在button事件中注册一个上传事件 代码详解&#xff1a; protected void FileUpload_Click(object sender, EventArgs e) { bool fileIsvaild false; //初始化一个bool型为false的fileIsvaild if (this.FileUpload1.HasFile)…

哈夫曼字符串编码c语言实现,基于哈夫曼(haffuman)算法的文件压缩的实现(C语言)(原创)...

本文首先简要阐述哈夫曼算法的基本思想&#xff0c;然后介绍了使用哈夫曼算法进行文件压缩和解压缩的处理步骤&#xff0c;最后给出了C语言实现的文件压缩和解压缩的源代码。哈夫曼算法的主要思想是&#xff1a;①首先遍历要处理的字符串&#xff0c;得到每个字符的出现的次数&…

html 长文本 截断 jquery 扩展脚本

(function ($){$.LongTextFormat function (selector, fmlength){var re /\s/g;$(selector).each(function (i){//获取td当前对象的文本,如果长度大于25; var jobj $(this);var text jobj.text();if (text){text text.replace(re, "");if (text.length > fml…

rn 滑动验证_rn-fetch-blob

1.前言 最近开发react-native的app,上传图片功能需要使用相机,发现Genymotion默认的相机不工作.查看同行的博客解决了,归纳整理一下. 2.步骤 2.1安装Genymotion:http://www.genymotion.net/ 2.2在windows电脑上安装ManyCam ...ziguiyu2019-05-15React Native最近有大动作&#…

md5生成一个加盐程序c语言,MD5在编程中的实现 (C语言)

在C语言中实现MD5算法———————————————————————————————————————————*/#ifndef PROTOTYPES#define PROTOTYPES 0#endiftypedef unsigned char *POINTER;typedef unsigned short int UINT2;typedef unsigned long int UINT4;#if PROT…

用matlab画大数据曲线_基于MATLAB的大数据分析

王媚摘要&#xff1a;传统计算机模式与MATLAB软件技术相比较&#xff0c;传统软件运行起来较为复杂。以此基于MATLAB软件下的网络数据技术&#xff0c;它以高速化、关联化的优势成为人们眼中的焦点。本文针对传统网络软件模式中出现的问题&#xff0c;对基于MATLAB大数据技术进…