Codeforces Round #694 (Div. 2)
1 #include<iostream>
2 #include<algorithm>
3 #include<cstring>
4 #include<cstdio>
5 #include<cmath>
6 using namespace std;
7 const int maxx=1e5+10;
8 int main(){
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 int n,x;
13 scanf("%d %d",&n,&x);
14 int a[maxx]={0};
15 long long int sum=0,y=0,summ=0;
16 for(int i=0;i<n;i++){
17 scanf("%d",&a[i]);
18 sum+=(a[i]/x);
19 if(a[i]%x!=0){
20 sum++;
21 }
22 summ+=a[i];
23 }
24 long long int mi=0,ma=0;
25 if(summ%x!=0){
26 mi++;
27 }
28 mi+=summ/x;
29 printf("%lld %lld\n",mi,sum);
30 }
31 }
B. Strange List
题意:设当前数为q,如果q能被x整除,在序列末端插入x个q/x,q移到下一位元素重复以上操作,如果不能就结束操作。求序列最终的和。
思路:其实这个是有规律的,插入x个q/x就是加q,只要q能被x整除就加q,一直到出现一个不能被x整除的数为止。也就是说,即使加入了x个q/x,那么和加q没什么区别
当时没想到的:1)本想着用数组,然后手写动态的数组,进行n++,然后存储空间太小,爆掉了;2)然后就想着要不要用队列,然后发现还是爆掉了;3)这种会RE或者会TLE的题目一定有简单的解法,一个是进行找找规律
代码:
1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cstring>
5 #include<cmath>
6 #include<queue>
7 using namespace std;
8 const long long int maxx=1e7;
9 long long int a[maxx];
10 long long int b[maxx];
11 int main(){
12 long long int t;
13 scanf("%lld",&t);
14 while(t--){
15 long long int n,x;
16 scanf("%lld %lld",&n,&x);
17 long long int sum=0;
18 queue<int> s;
19 for(long long int i=0;i<n;i++){
20 scanf("%lld",&a[i]);
21 b[i]=a[i];
22 sum+=a[i];
23 }
24 int flag=0;
25 while(!flag){
26
27 for(int i=0;i<n;i++){
28 if(b[i]%x){
29 flag=1;
30 break;
31 }
32 sum+=a[i];
33 b[i]/=x;
34 }
35
36 }
37 printf("%lld\n",sum);
38 }
39 }
C. Strange Birthday Party
题意:p有n位朋友,每位朋友有一个数ki。商店有m份礼物,第j份礼物价值cj美元,每份礼物只能买一次。当j<=ki时,p要么给第i位朋友价值为cj的礼物,要么直接给cki美元。问最小花费。
思路:注意c序列升序。对k序列降序处理,k值大的先选,避免较小的k值拿走较小的c值,最小值从c1开始,每次和cki比较取较小值。因为一个是第二个数组肯定是升序,这样的话,为了增大c中对应的cki和ci之间的差别,就应该倒置,因为c数组一定是从小到大
代码:
1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cstring>
5 #include<cmath>
6 #include<queue>
7 using namespace std;
8 const long long int maxx=3e5+10;
9 int a[maxx];
10 int b[maxx];
11 int main(){
12 long long int t;
13 scanf("%lld",&t);
14 while(t--){
15 int n,m;
16 scanf("%d %d",&n,&m);
17 for(int i=0;i<n;i++){
18 scanf("%d",&a[i]);
19 }
20 for(int i=0;i<m;i++){
21 scanf("%d",&b[i]);
22 }
23 int p=0;
24 sort(a,a+n);
25 int s=b[p++];
26 long long int sum=0;
27 for(int i=n-1;i>=0;i--){
28 if(b[a[i]-1]>s){
29 sum+=s;
30 s=b[p++];
31
32 }else{
33 sum+=b[a[i]-1];
34
35 }
36
37 }
38
39 printf("%lld\n",sum);
40 }
41 }
Codeforces Round #694 (Div. 2)的更多相关文章
- Codeforces Round #433 (Div. 2)【A、B、C、D题】
题目链接:Codeforces Round #433 (Div. 2) codeforces 854 A. Fraction[水] 题意:已知分子与分母的和,求分子小于分母的 最大的最简分数. #in ...
- Codeforces Round #292 (Div. 1)A. Drazil and Factorial 构造
A. Drazil and Factorial 题目连接: http://codeforces.com/contest/516/problem/A Description Drazil is play ...
- B. Ohana Cleans Up(Codeforces Round #309 (Div. 2))
B. Ohana Cleans Up Ohana Matsumae is trying to clean a room, which is divided up into an n by n gr ...
- B. The Number of Products(Codeforces Round #585 (Div. 2))
本题地址: https://codeforces.com/contest/1215/problem/B 本场比赛A题题解:https://www.cnblogs.com/liyexin/p/11535 ...
- Codeforces Round #517 (Div. 2)(1~n的分配)
题:https://codeforces.com/contest/1072/problem/C 思路:首先找到最大的x,使得x*(x+1)/2 <= a+b 那么一定存在一种分割使得 a1 &l ...
- Codeforces Round #805 (Div. 3)E.Split Into Two Sets
题目链接:https://codeforces.ml/contest/1702/problem/E 题目大意: 每张牌上面有两个数字,现在有n张牌(n为偶数),问能否将这n张牌分成两堆,使得每堆牌中的 ...
- 贪心+构造( Codeforces Round #344 (Div. 2))
题目:Report 题意:有两种操作: 1)t = 1,前r个数字按升序排列: 2)t = 2,前r个数字按降序排列: 求执行m次操作后的排列顺序. #include <iostream&g ...
- Codeforces Round #516 (Div. 2)D. Labyrinth(BFS)
题目链接:http://codeforces.com/contest/1064/problem/D 题目大意:给你一个n*m的图,图中包含两种符号,'.'表示可以行走,'*'表示障碍物不能行走,规定最 ...
- Codeforces Round #281 (Div. 2) A. Vasya and Football 模拟
A. Vasya and Football 题目连接: http://codeforces.com/contest/493/problem/A Description Vasya has starte ...
随机推荐
- Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)
前言 这篇文章是我一直以来很想写的一篇文章,终于下定决心动笔了. 写Flutter的小伙伴可能都感受到了:掘金的一些热门的Flutter文章下,知乎的一些Flutter的话题下或者一些论坛里面,喷Fl ...
- 走进docker-初识
什么是Docker容器? 容器是打包代码及其所有依赖项的软件的标准单元,因此应用程序可以从一个计算环境快速可靠地运行到另一个计算环境.Docker容器映像是一个轻量级的,独立的,可执行的软件软件包,其 ...
- 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:
"/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...
- c++ 反汇编 继承
单继承,父类中没有虚函数 单继承,父类存在虚函数,子类重写虚函数 单继承,父类存在虚函数,子类不新定义虚函数 单继承,父类存在虚函数,子类新定义虚函数 单继承,父类不存在虚函数,子类定义虚函数 多继承 ...
- 前端er必须知道的Git地址及常用工具地址
商城篇(找工作必练) 开源商城 推荐指数:5星,掌握了它,可以说,今后工作中的各种需求都不是问题,工作1~2年的也可以学习其中的思路(建议收藏). 这是一个集小程序/公众号/app为一体的商城系统,包 ...
- 学习笔记-cordova 限制app横屏
禁止手机app横竖屏幕转换,只需在根目录下的 config.xml 中添加如下内容 <preference name="orientation" value="po ...
- ASP.NET扩展库之Http日志
最佳实践都告诉我们不要记录请求的详细日志,因为这有安全问题,但在实际开发中,请求的详细内容对于快速定位问题却是非常重要的,有时也是系统的强力证据.Xfrogcn.AspNetCore.Extensio ...
- vscode(Visual Studio Code)中安装Debugger for Chrome插件调试页面
最近换了下编辑器,改用vscode(Visual Studio Code),很喜欢它左边显示的文件路径,轻松新建文件夹和文件,也喜欢它的编码转换功能,gbk和utf-8可以随时切换,因为公司网站有些页 ...
- CrackMe_002
老规矩,先熟悉程序. 只有一个验证的功能,错误提示You Get ... 关闭没有nag窗口 第一种,暴力破解 查找字符串,很少,直接双击进入 可以看到错误提示的跳转来自: 表示这应该是个重要的跳转, ...
- vue Element-ui 表格多选 修改选中行背景色
实现的效果: 整体思路方式: 1.给获取到的数据添加自定义的className 2.在点击行(row-click)和手动点击勾选框的事件(select-all)中获取到当前的row的className ...