2018/8/16第二周
第一题:http://acm.hdu.edu.cn/showproblem.php?pid=2040
时间减少平方级。求一个数的约数只需要枚举到,sqrt(a) 就可以了,不要小看这一个开平方。相当于时间复杂度从O(n^2) 到O(n)
int yueshu(int x) //求x的约数和
{int ans = 1;for(int i = 2; i < sqrt(x+1); i++){if(x%i == 0){if(i == x/i){ans += i;} else{ans += (i + x/i);}}}return ans;
}
第二题:http://acm.hdu.edu.cn/showproblem.php?pid=2041
打表的方式。当答案是可以在询问之前就可以确定的话,是可以考虑有打表的方式将答案先保存起来,也就是先预处理一下,然后对于后面的查询就会变的容易一些,不同的就是对于每一个题来说,求解的方法是不一样的,需要去思考应该怎么去预处理。
这个就是题目的难点,一般而言,是可以先采用最简单的办法去打印一部分数据,然后去找规律。或者是自己去一步一步的用数学去推理,这样也是可以得到解的。
a[1] = 0; a[2] = 1; a[3] = 2; // 数组a[i] 就是保存的台阶i,所需要的次数for(int i = 4; i <= 40; i++)a[i] = a[i-1] + a[i-2];
第三题:http://acm.hdu.edu.cn/showproblem.php?pid=2042
和第二题思想一样
long long int ans[31] = {3,4}; // 这里需要用long long 因为这种递推的方式是很容易超出int的范围for(int i = 2; i < 31; i++)ans[i] = 2 * ans[i-1] - 2;
第四题:http://acm.hdu.edu.cn/showproblem.php?pid=2045
和第三题思想一样
a[1] = 3; a[2] = 6; a[3] = 6;for(int i = 4; i<=50; i++)a[i] = 2*a[i-2] +a[i-1];
第五题:http://acm.hdu.edu.cn/showproblem.php?pid=2048
和第四题思想一样,但是这个题相对而言不太容易找到规律。题目需要求一个概率,每次抽签抽的都不是自己的概率。就是求抽中的人没有一个是自己的排列数a[i]除以所有抽球可能的排列s[i]。当有N个人可以抽出没有一个人是自己的可能a[n]后,再添加一个人(n+1个人),和其中任意一个人交换位置都是可以的,结果为n*(a[n]),同时和其中有且只有一个人抽中了自己的人交换位置也是可以的,那就是n*(a[n-1]) ,为什么是n*(a[n-1])呢。 只有一个人抽中了自己,也就是前面有n-1个人是没有抽到自己的,也就是a[n-1]; 所以递推式就是a[n+1] = n*a[n] + n*a[n-1] = n(a[n]+a[n-1]) 换一下a[n] = (n-1)*(a[n-1] + a[n-2]);
a[1] = 0 ; a[2] = 1;
for(i = 3; i <= 20; i++)a[i] = (i-1)*(a[i-1] + a[i-2]);sum[1] = 1;
for(i = 2; i <= 20; i++)sums[i] = sum[i-1] * i;/// 最后答案就是 a[n]/sum[n]*100.0
第六题:http://acm.hdu.edu.cn/showproblem.php?pid=2049
和第五题思想一样。有n对夫妻结婚,有m个新郎跪搓衣板。也就是n-m个新郎可以回去洞房。和上面个方法一样.答案就是
m个找错了的a[m],乘以 n个当中选出m
a[m] * sum[n] / sum[n-m] / sum[m]
第七题:http://acm.hdu.edu.cn/showproblem.php?pid=2052
就是一个printf(); 的题。注意控制格式,建议这类题目,先自己在纸上好好的理一下注意事项,容易出错的在于if ...else 没有烤炉到所有情况,或者是考虑了多余的情况。需要仔细的注意。
2018/8/16第二周相关推荐
- OUC2022秋季软件工程第16组第二周作业
OUC2022秋季软件工程第16组第二周作业 目录 文章目录 OUC2022秋季软件工程第16组第二周作业 目录 一.视频学习心得及问题总结 1.学习心得 张欣悦: 赵艳蕊: 杨婷: 郑欣欣: 张维娜 ...
- 【回顾九月份第二周】 前端你该知道的事儿
原链接: http://bluezhan.me/weekly/#/9-2 1.web前端 Angular vs. React vs. Vue: A 2017 comparison 9 Steps: C ...
- 第二周-python实战-youtube视频分析
python实践 前言:本文主要针对kaggle上的一份数据集,内容是关于youtube热点视频的分析,用python进行了一些分析,主要用到的是pandas的一些方法,结合案例加以操作,巩固pyth ...
- Emojify - v2 吴恩达老师深度学习第五课第二周编程作业2
吴恩达老师深度学习第五课第二周编程作业2,包含答案! Emojify! Welcome to the second assignment of Week 2. You are going to use ...
- Linux第二周学习笔记(7)
Linux第二周学习笔记(7) 2.13 文档查看cat_more_less_head_tail (1). cat命令 cat命令:用于查看一个文件的内容并将其显示在屏幕上 cat-A命令:显示所有的 ...
- 2月第二周.COM增近12万 ×××域名.XXX减122个
IDC评述网(idcps.com)02月18日报道:根据Registrar Stats实时数据,截至2014年2月16日,全球.COM域名注册总量已达到了112,369,017个,环比上周新增近12万 ...
- LINUX内核分析第二周学习总结——操作系统是如何工作的
LINUX内核分析第二周学习总结--操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 2019年春季学期第二周作业(文件指针)
2019年春季学期第二周作业(基础作业) 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始).并将最大值和对应的最小下标数值写入文件. 输入: 请建立以自 ...
最新文章
- mongodb3 分片集群平滑迁移
- 机器人研究员的崛起 |《自然》论文
- linux watchdog demo hacking
- 算法分析 载货问题_协会发布 | 汽车市场走势分析及2021年预测报告
- sqlServer事务
- 李彦宏被提名工程院院士,而美女教授颜宁落选,当选为美国院士
- 使用SCOM常用的一些ManagementPack
- python面向对象学习_Python 初识面向对象#学习猿地
- KMS安装后激活机器
- VSCode 代码风格统一设置eslint + stylelint
- springboot 事务_Spring Boot中的事务是如何实现的?懂吗?
- 麦咭智能机器人宣传片_【头脑风暴】移动机器人能够撬动上亿线下流量,挖掘市场增量吗?...
- 只因少打一个字符 “”,大量谷歌 Chromebook 无法解锁
- 前端开发——图片标注工具
- AEJoy —— 表达式之弹性(韧性)模拟详解【JS】
- python计算机视觉 相机标定--张正友棋盘格标定法
- ADB Interface 找不到驱动程序 怎么破
- java编写这个通讯录管理系统_Java如何实现通讯录管理系统
- python turtle库画一个五角星 【Python初学 绘制五角星】
- python中小数点后取2位(四舍五入)以及取2位(四舍五不入)的方法总结