Poker

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 98    Accepted Submission(s): 39
传送门

Problem Description
小沃沃在玩一个有趣的游戏。
初始他有 n 块钱,每一轮他需要投入至少 m 块钱,系统会拿走其中 p% 的钱,并把剩下的钱还给他。
请问在最优情况下,小沃沃最多可以玩多少轮?
假设当前一轮小沃沃投入了 x 块钱,那么他可以收回 ⌊x×(1−p%)⌋ 块钱,其中 ⌊a⌋ 表示 a 取下整。
小沃沃每一轮投入的钱不能超过他现在拥有的钱。
每一轮投入的钱必须为整数。
Input
第一行一个正整数 test(1≤test≤100000) 表示数据组数。
对于每组数据,一行三个整数 n,m,p(1≤n≤100000,1≤m≤1000,1≤p≤100)。
Output
对每组数据输出一行一个整数表示答案。
Sample Input
2 10 2 50 10 2 100
Sample Output
9 5
解题思路:签到题,每次至少投入m快钱,每次系统拿掉p%也就是说每次会减少m*p%的钱,用一个循环,每次模拟,当剩下的钱不够m的时候退出就行
AC代码:

#include<cstdio>
int main(void)
{int t,n,m,p;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&m,&p);int sum=0;while(n>=m)//判断条件{n-=(m*p/100.0);//每次减少的钱sum++;}printf("%d\n",sum);}return 0;
}

Distance

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 65    Accepted Submission(s): 21
传送门

Problem Description
小沃沃所在的世界是一个二维平面。他有 n 个朋友,第 i 个朋友距离他的距离为 a[i],小沃沃并不知道这些朋友具体在什么点上。
请问在最优情况下,小沃沃的朋友两两之间的欧几里得距离的和的最小值是几?
假设小沃沃的位置为 P0=(x0,y0),第 i 个朋友的位置为 Pi=(xi,yi),对于所有的 i,需要满足 dist(P0,Pi)=a[i],并且∑n−1i=1∑nj=i+1dist(Pi,Pj) 最小,其中 dist(X,Y) 为连接点 X 和点 Y 的线段的长度。xi,yi 都可以是任意实数。
Input
第一行一个正整数 test(1≤test≤10) 表示数据组数。
对于每组数据,第一行一个正整数 n(1≤n≤100000)。
接下来一行 n 个整数,第 i 个整数 a[i](1≤a[i]≤1000000000) 表示第 i 个朋友和小沃沃的距离。
Output
对每组数据输出一行一个数,表示 ∑n−1i=1∑nj=i+1dist(Pi,Pj) 的最小值。答案需要四舍五入到整数。
Sample Input
2 2 3 5 5 1 2 3 4 5
Sample Output
2 20

解题思路:不要被题目的表面迷惑了,什么xi,yi对题目没有任何影响,我们只知道小沃沃的朋友距离小沃沃的长度,什么时候他的朋友们的相互距离之和最小呢,我们都知道直线有最短距离

那么他的朋友就是站成一条直线的。我们会想到用一个两层循环去做,有些人就存在侥幸心理,莽一发O(n^2)直接交上去,然后秒T,没错就是我,,。

T掉之后,我们就会想优化,其实很容易发现当朋友们连成一条直线的时候,对朋友们的距离进行排序,就能得到有序的数组,然后我们发现在计算的时候会有重复的部分,然后我们减去重复的部分就好了啊。

设K为第一个到其他的总和,那么k0=10,然后每次减去(n-i)*b[i],不断让k更新。

AC代码:

#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 100005
#define ll long long
bool cmp(ll a,ll b)
{return a<b;
}
ll a[maxn],b[maxn];
int main(void)
{ll t,n;scanf("%lld",&t);while(t--){scanf("%lld",&n);ll sum=0;for(ll i=0;i<n;++i){scanf("%lld",&a[i]);}sort(a,a+n,cmp);ll k=0;//这个k表示的是第一个朋友到其他朋友的距离总和for(ll i=1;i<n;++i){b[i]=a[i]-a[i-1];//求相邻朋友的距离k+=(n-i)*b[i];}for(ll i=1;i<n;++i){sum+=k;//每次加上每个朋友到其他朋友的距离(未被添加距离的朋友)k-=(n-i)*b[i];//更新k的值}printf("%lld\n",sum);}}

2020 年百度之星程序设计大赛 - 初赛二相关推荐

  1. 1001. Poker (思维 / 模拟)(2020年百度之星*程序设计大赛-初赛二)

    传送门 思路: 嗐,又是这种模拟题,每次都不长记性看数据范围,非得傻傻的去循环模拟T一次才知道思考.呜呜呜太菜了. 既然每次至少拿出m,且求的是最多次数,那我们每次就拿m出来. 先将m * p%上取整 ...

  2. 2020年百度之星·程序设计大赛-初赛一

    Pro.ID 1001 Drink 题解 1002 GPA 题解 1003 Dec 题解 1004 Civilization 1005 Rotate 题解 1006 Matrix 1007 Mosqu ...

  3. 2020 年百度之星·程序设计大赛 - 初赛一 Civilization BFS广搜

    problem Civilization Accepts: 619 Submissions: 2182 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...

  4. 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理

    problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  5. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜

    problem GPA Accepts: 1554 Submissions: 3947 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  6. 2020 年百度之星·程序设计大赛 - 初赛一 Drink

    Problem Description 我们有 nn 种不同的饮料,每种饮料有无限多瓶,第 ii 种饮料一瓶提供 x[i]x[i] 毫升的水分,包含 y[i]y[i] 卡路里. 现在我们需要选择一种饮 ...

  7. 2020 年百度之星·程序设计大赛 - 初赛一题解

    Drink 对于每一种饮料,都可以算出最少需要多少瓶,从而知道最少摄入多少卡路里,从中找个最优值. #include <iostream> #include <cstdio>u ...

  8. 2020年百度之星·程序设计大赛 - 初赛一(前三题)

    文章目录 Drink[贪心] 题目描述 测试样例 解题思路 赛时AC代码 赛后优化AC代码 总结: GPA[枚举] 题目描述 测试样例 解题思路 赛时WA代码 赛时AC代码 总结: Dec[反向dp+ ...

  9. 2020 年百度之星·程序设计大赛 - 初赛三-Discount

    Discount Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

最新文章

  1. leetcode算法题--不同的二叉搜索树
  2. uniapp中使用picker_uniapp 使用个推推送系统消息
  3. python学习之函数
  4. C# 使用 Index 和 Range 简化集合操作
  5. tidb时间转字符串_如何使用TiDB节省时间
  6. 域名抢注php程序_“丁真”被抢注,蹭热点这门生意,能成就好品牌?
  7. 状态服务器与无状态服务器(要点)
  8. go Mutex (互斥锁)和RWMutex(读写锁)
  9. IIS网站无法播放视频的解决方法
  10. 幸福之路---罗素,2017-12-6 周三
  11. 使用标准测试函数测试全套 MATLAB 优化算法
  12. Jmeter使用CSV文件读取大量测试数据
  13. python怎么安装scrapy_Python-2.7安装Scrapy 1.0爬虫实例
  14. 利用Windows命令行快速隐藏文件
  15. 联想Lephone与Apple iPAD的完美组合
  16. HTML用户名判断,用户名判断(练习)
  17. android gradle lint,Android Lint
  18. 2014522420145238 《信息安全系统设计基础》第二次实验
  19. K8s------Metallb实现Load Balancer服务
  20. mysql wait for_mysql定时执行及延时执行,实现类似sql server waitfor功能

热门文章

  1. Linux 基本命令(八)--touch 常用命令
  2. Fiddler- 数据Mock(转)
  3. 微信扫描二维码在内置浏览器打不开文件的下载链接怎么办?哪些api接口可以解决...
  4. Ubuntu下自定义调整CPU工作频率(用于省电或提高性能都好用)
  5. 读写生信流程必备的 Perl 语法
  6. KM算法(最优匹配)
  7. 在 SQL Server 的存储过程中调用 Web 服务
  8. eclipse-indigo 中 user libraries 自动部署 WEB-INF/lib 配置
  9. iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画
  10. 使用appium时出现的问题