
Flower
发布日期:2021-05-08 16:30:27
浏览次数:12
分类:精选文章
本文共 914 字,大约阅读时间需要 3 分钟。
题意: 共有n朵花,每次必须修剪n-1朵,但是花的高度不能小于1,问修剪几次才能使n朵花一样高,若能实现就输出次数,否则输出-1;这个题如果用cin和cout的话,一定要加上std::ios::sync_with_stdio(false); cin.tie(0),cout.tie(0);
来提高效率,否则会时间限制,而且还有一个变态的条件是数组要从0开始,不可以从1开始输入,不知道为什么,求解。 下面是思路,一开始只是简单的觉得,只要有三个以上不同的数,他就一定不能成功,又觉得可能有好几种不同的减法,就可以有多个不同的数,但是又举不出例子来证明这是看了别人给出的例子,才知道了,真的是可以的,然后在纸上模拟一下一开始肯定是留下一个最小的数,然后用其他数和他作差,只要最后都是大于1的,如果只考虑剩余数中最小的呢个,当他大于1的时候,显然还可以再减,所以我们去看他最大的呢个数可以减几次,减到和最小值相等为止
这时候最小值一定变了(除非这n个数已经相同,而这种正好是一个和n-1个),但是这个最小值一定不是刚刚的最大值,所以他还可以继续减,再次减成现在的最小值,以此类推,得出最后的结果其实就是最大值和其余每个值的差。 当最大值大于这个差,就说明可以减出来,否则,就不可能实现。 5 8 9 10->2 2 2 2#include#include using namespace std;int a[100005],n,sum,i;int main(){ std::ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); int t; cin>>t; while(t--) { cin>>n; sum=0; for(i=0; i >a[i]; } sort(a,a+n); for(i=0; i =a[n-1]) cout<<-1<
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月04日 08时05分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL不会丢失数据的秘密,就藏在它的 7种日志里
2021-05-09
Python开发之序列化与反序列化:pickle、json模块使用详解
2021-05-09
回顾-生成 vs 判别模型-和图
2021-05-09
采坑 - 字符串的 "" 与 pd.isnull()
2021-05-09
无序列表 - 链表
2021-05-09
SQL 查询强化 - 数据准备
2021-05-09
SQL 强化练习 (四)
2021-05-09
SQL 强化练习 (八)
2021-05-09
Excel 拼接为 SQL 并打包 exe
2021-05-09
Pandas数据分析从放弃到入门
2021-05-09
Matplotlib绘制漫威英雄战力图,带你飞起来!
2021-05-09
机器学习是什么
2021-05-09
《小王子》里一些后知后觉的道理
2021-05-09
《自私的基因》总结
2021-05-09
《山海经》总结
2021-05-09
《非暴力沟通》总结
2021-05-09
《你当像鸟飞往你的山》总结
2021-05-09
《我是猫》总结
2021-05-09
《抗糖化书》总结
2021-05-09
apache虚拟主机配置
2021-05-09