20170810
来源:互联网 发布:网络爬虫的目的和意义 编辑:程序博客网 时间:2024/06/04 01:37
今天讲了些分治,以前接触过二分查找,现在看二分答案还算好理解,但是毕竟不熟。
先是练手写了快速幂。犯了很低级的错误,printf输出的时候变量之前又多加“&”,导致一直读取不对……
下一题是luogu2759,奇怪的函数。简单地说就是求令x^x为n位数的最小值,可以转化为求x^x>=10^y,即y<=xlog10x+1.
二分进行的条件,以后都写成left+1<right,可以避免考虑mid+1或-1的问题,在输出之前再验证就可以了。
觉得老师讲到二分的思想很有趣:
"二分答案是一种思路转换策略,我们一般要把一个很难的求解性问题转换为较简单的判断性问题。"
#include<bits/stdc++.h>using namespace std;int main(){long long ans;int n;scanf("%d",&n);long long Left=1,Right=2000000000,mid;while(Left+1<Right){mid=(Left+Right)/2;ans=1LL*mid*(log10(1.0*mid))+1;if(ans>=n) Right=mid;else Left=mid;}ans=1LL*Left*(log10(1.0*Left))+1;if(ans==n) cout<<Left;else cout<<Right;return 0;}也卡了很久,主要是没有好好考虑到变量ans和mid的范围,用int是会越界的。再记一下零碎的知识……*1LL是强制转long long,*1.0强制转精度,英文单词命名的变量为了防止和库里冲突,尽量开头字母大写。
要试着熟悉函数的使用,会方便也容易检查很多。
然后是,跳石头,理解起来还是有困难,而且没过,姑且放到明天a了再总结吧。
阅读全文
0 0
- 20170810
- 20170810
- 20170810
- 20170810
- 20170810link
- 20170810Link
- SQL语言学习20170810
- 20170810 Unity项目笔记
- 20170810(初学git)
- 360面试题20170810
- MySQL学习笔记——20170810
- Mark-20170810-Centos 7 方便快捷安装 Ansible 及 copy 文件/启动 NTP 服务简例
- 2017.8.11
- mysql分表
- C语言入门:打印菱形星号“*”图案
- MySQL存储过程详解
- 线程安全与可重入函数strtok_r()
- 20170810
- 8.11
- Metasploit的Docker安装及其Eternal Blue(永恒之蓝)渗透实现
- tensorflow预训练简单模型及权重文件复用初始化复杂模型
- [hihocoder1546]集合计数
- 2017.8.11
- 2017/8/11
- Action的创建与访问方式
- 919