『程设解体报告』传送带(附证明)、高精度
来源:互联网 发布:lc标签打印软件 编辑:程序博客网 时间:2024/06/08 01:23
传送带
这道题最开始的做法是全部数据输入结构体之后使用快排,然后用贪心做的,但是因为n最大为10^6,快排nlogn的时间复杂度速度就很慢了,然后刚好2.9s卡着时间通过了
看到提交记录里面YY大神竟然用了0.4s的方法过了,一直不知道咋搞的,后来看到讨论区又说对输入数据进行处理,开一个速度的数组进行优化的,时间能降到1s左右,还是离0.4s差很多,再后来知道了输入优化,就是输入速度cin>scanf>getchar,然后就用了这么种东西学着优化了,顺便贴一个快速输入的代码吧
void scan(int *a ){ char c; *a=0; while((c=getchar())<'0'||c>'9'); while(c>='0'&&c<='9') *a = (*a)*10+(c-'0'),c=getchar();}
刚才在重新写代码的时候,把数组开成int的了,然后再步行与走路切换的时候,减去的距离只能为整数,改成double型了就好了。
看到机智的Eureka发的状态,贪心的都得证明,刚好讨论区没有一个贪心的证明,于是不喜欢证明的我也来试一试吧,
首先取两条长度相同的传送带,长度均为s
速度分别为v1,v2
其中v1 > v2
步行速度和跑步速度分别为w、r
t1为在快的传送带上跑步,慢的上面走路
t2相反1:当t * (r + v1) == s
t1 = t + s / (v2 + w)
t2 = t + s / (v1 + w) + (s - t * (v2 + r)) / (v1 + w)
容易得t1 > t2
2:当t * (r + v1) < s
t1 = t + (s - t * (r + v1)) / (w + v1) + s / (w + v2)
t2 = t + (s - t * (r + v2)) / (w + v2) + s / (w + v1)得t1 > t2
3:同2,可以得当 t * (r + v1) > s时候,t1 > t2
现已证明出对于相同长度的两条不同速度传送带上该方法可行,
当两传送带长度不等时,将上面证明微元化即可得出证明
然后利用数学归纳法,可证明n个传送带中该方案的正确性
贪婪的你
这道题没啥好说的,直接过一个结构体排序就好了,暂时还没有想到啥优化的方法
高精度加减
注意事项
1、输入数据前面的0,比如 000 + 001或者000 - 000 或者 000 - 009
2、输入之后要把字符减去‘0’,然后成为0-9的ascii码(在高精度乘法里面还要注意一个问题,就是不能在char型数组里面进行乘法操作,因为会溢出)
3、将输入的字符串反向对齐后进行操作
4、减法运算如果减数大于被减数,则要交换位置,然后在结果前面加上负号
5、去除结果中的前置0
逻辑行计数
这个题,还是得认真读题,把几种逻辑关系搞清楚,具体细节讨论区里面讨论够多了……多的就不说了……
- 『程设解体报告』传送带(附证明)、高精度
- 『程设解体报告』9的统计(含压位高精度模板)、倒数问题、识别条形码,编程珠玑(含o(n)优化)
- 『程设解体报告』球体问题、修剪草坪、合并果子、扫雷
- poj1979解体报告(挑战程序设计竞赛)
- 解体报告:hdu 2546 (01背包问题)
- 高精度计算(附高精度加法程序)
- zju1086 (高精度)解题报告
- POJ1001 求高精度幂 ACM解题报告(高精度模板)
- 【BZOJ1857】传送带(三分)
- 传送带
- 高精度之 加减乘除除取余(课设专用)
- 典型大数题(解体模板)
- Pascal高精度加法(附N-S流程图)
- 频率计课设报告
- 扩展欧几里德算法(附证明)
- 数据结构课程设计报告(附代码)
- 约会(UESTC-1033)解题报告-证明过程
- poj1001解题报告(高精度浮点数乘法)
- Ubuntu下U盘文件只读的解决办法
- javax.naming.NameNotFoundException: Unable to resolve 'jdbc.mydb'. Resolved 'jdbc'; remaining name '
- 。。第一篇博文QAQ。。
- JavaScript和prototype
- sql server 2008基本语法
- 『程设解体报告』传送带(附证明)、高精度
- 岘港旅游
- C++之const
- 用jsp和servlet实现分页方法
- SQL Server CLR全功略之四---CLR触发器
- 2013ACM暑假集训总结-致将走上大三征途的我
- SQL Server CLR全功略之五---CLR自定义数据类型
- hnsd11348tree(并查集)
- 我工作这几年(二)