题目链接:https://codeforces.com/contest/1213


A:

题意:给定数的位置,位置为整数,每个数可以向左或右移动一格或者两格,移动一格花费一个硬币,两格不花费硬币,问所有硬币移动到同一位置至少要花费多少硬币

idea:每个数的奇偶个数

 #include <bits/stdc++.h>

 using namespace std;
int a[], n, s1, s2; int main()
{
cin >> n;
for (int i = ; i < n; i ++ )
{
cin >> a[i];
if (a[i] % ) s1 ++ ; //s1为偶数
else s2 ++ ;
}
int ans = min(s1, s2);
cout << ans << endl;
return ;
}

B:

题意:给出每天的价格,如果后面天数有价格比当前天数价格低,就认为这一天为“坏”的一天,问总共有多少天是“坏的”

idea:单调栈,从后面往前遍历一遍,时间复杂度O(n)

 #include <iostream>
#include <cstdio> using namespace std;
const int MAXN = 1e6 + ;
int t, n, a[MAXN]; int main()
{
cin >> t;
while (t -- )
{
scanf("%d",&n);
for (int i = ; i < n; i ++ )
scanf("%d",&a[i]); int ss = a[n - ], ans = ;
for (int i = n - ; i >= ; i -- )
{
if (a[i] > ss) ans ++ ;
if (a[i] < ss) ss = a[i];
}
cout << ans << endl;
}
return ;
}

C:

题意:输入n和m,求1~n中能整除m的数的个位数累加和

idea:数学题,i * m % 10 = (10 + i) * m % 10,0 <= i <= 9

 #include <iostream>
#include <cstdio> using namespace std;
typedef long long ll;
int q, a[]; int main()
{
cin >> q;
while (q -- )
{
ll n, m, k, sum = , ans = ;
cin >> n >> m;
for (int i = ; i < ; i ++ )
{
a[i] = m * ( + i) % ;
sum += a[i];
} k = n / m;
ll s;
s = k % ;
for (int i = ; i < s; i ++ ) ans += a[i];
ans += (k / ) * sum;
cout << ans << endl;
}
return ;
}

D1:

题意:给定一些数,数能变成 n / 2 (向下取整),问变成某个数m,且至少有k个数能变成m需要的操作次数至少是多少

idea:记录每个数的贡献,若变成m的数大于等于k个,取前k小操作次数累加即可(纯暴力瞎搞...)

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring> using namespace std;
const int MAXN = 1e6;
const int _inf = 0x3f3f3f;
int k, n, a[MAXN], b[MAXN], c[MAXN], ans = _inf; int main()
{
cin >> n >> k;
for (int i = ; i < n; i ++ )
cin >> a[i]; int idd = ;
for (int i = ; i < n; i ++ )
{
int x = a[i];
b[idd ++ ] = x;
while (x > )
{
x >>= ;
b[idd ++ ] = x;
}
} for (int i = ; i < idd; i ++ )
{
int id = ;
for (int j = ; j < n; j ++ )
{
int x = a[j], cur = ;
while (x > b[i])
{
x >>= ;
cur ++ ;
}
if (x == b[i]) {
c[id ++ ] = cur;
}
}
if (id >= k) {
int sum = ;
sort(c, c + id);
for (int j = ; j < k; j ++ ) sum += c[j];
ans = min(ans, sum);
}
memset(c,,sizeof c);
}
cout << ans << endl;
return ;
}

PS:由于自己懒,拖了好久才补的题,以后要第一时间把题补了,专心补题

Codeforces Round #582 (Div. 3)的更多相关文章

  1. Codeforces Round #582 (Div. 3)-G. Path Queries-并查集

    Codeforces Round #582 (Div. 3)-G. Path Queries-并查集 [Problem Description] 给你一棵树,求有多少条简单路径\((u,v)\),满足 ...

  2. Codeforces Round #582 (Div. 3) G. Path Queries (并查集计数)

    题意:给你带边权的树,有\(m\)次询问,每次询问有多少点对\((u,v)\)之间简单路径上的最大边权不超过\(q_i\). 题解:真的想不到用最小生成树来写啊.... 我们对边权排序,然后再对询问的 ...

  3. Codeforces Round #582 (Div. 3) E. Two Small Strings (构造,思维,全排列)

    题意:给你两个长度为\(2\)的字符串\(s\)和\(t\),你需要构造一个长度为\(3n\)的字符串,满足:含有\(n\)个\(a\),\(n\)个\(b\),\(n\)个\(c\),并且\(s\) ...

  4. Codeforces Round #582 (Div. 3) A. Chips Moving

    传送门 题解: 给你n个数的坐标,你需要把他们移动到一个位置,有两种移动方式 1.向左或者右移动2 2.向左或者右移动1,但是耗费1 求最小耗费 题解: 很简单就可以想到,看一下偶数坐标多还是奇数坐标 ...

  5. Codeforces Round #582 (Div. 3) C. Book Reading

    传送门 题意: 给你n,k.表示在[1,n]这个区间内,在这个区间内找出来所有x满足x%k==0,然后让所有x的个位加到一起(即x%10),输出. 例如:输入10 2 那么满足要求的数是2 4 6 8 ...

  6. Codeforces Round #582 (Div. 3) F. Unstable String Sort

    传送门 题意: 你需要输出一个长度为n的字符序列(由小写字母组成),且这个字符串中至少包含k个不同的字符.另外题目还有要求:给你两个长度为p和q的序列,设字符序列存在s中 那么就会有s[Pi]< ...

  7. Codeforces Round 582

    Codeforces Round 582 这次比赛看着是Div.3就打了,没想到还是被虐了,并再次orz各位AK的大神-- A. Chips Moving 签到题.(然而签到题我还调了20min--) ...

  8. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  9. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

随机推荐

  1. 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

    前言 最近在学习消息中间件--RabbitMQ,打算把这个学习过程记录下来.此章主要介绍环境搭建.此次主要是单机搭建(条件有限),包括在Windows.Linux环境下的搭建,以及RabbitMQ的监 ...

  2. 算法与数据结构基础 - 哈希表(Hash Table)

    Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...

  3. 通俗地说决策树算法(三)sklearn决策树实战

    前情提要 通俗地说决策树算法(一)基础概念介绍 通俗地说决策树算法(二)实例解析 上面两篇介绍了那么多决策树的知识,现在也是时候来实践一下了.Python有一个著名的机器学习框架,叫sklearn.我 ...

  4. python多线程与多进程及其区别

    个人一直觉得对学习任何知识而言,概念是相当重要的.掌握了概念和原理,细节可以留给实践去推敲.掌握的关键在于理解,通过具体的实例和实际操作来感性的体会概念和原理可以起到很好的效果.本文通过一些具体的例子 ...

  5. Spring cloud 超时配置总结

    基准配置: eureka-server : 注册中心 端口号1000 service-A : 服务A端口号2000 service-B : 服务B 端口号3000 其中,B服务通过feign调用服务A ...

  6. Hadoop学习(9)-spark的安装与简单使用

    spark和mapreduce差不多,都是一种计算引擎,spark相对于MapReduce来说,他的区别是,MapReduce会把计算结果放 在磁盘,spark把计算结果既放在磁盘中有放在内存中,ma ...

  7. MyEclipse下安装FreeMark插件

    现在大多人人喜欢用FreeMark模板.但是这个模板在myeclipse或者是eclipse下却是不能只能提示,一大堆只是没有颜色区分的显示在哪里.万能天国总是有办法. 点我去官网下载(比较慢) 我的 ...

  8. 解决树莓派烧录系统后没有boot文件,只出现盘符问题

    首先,如果下图情况,说明你没有烧录好,继续向下看 放一张安装成功的图片 出现这个的原因是因为前期没有烧录好,它会回滚到img文件中,如果中途退出,它会写入到img文件中 正确文件大小(Raspbian ...

  9. intellIJ IDEA学习笔记2

    常用的有fori/sout/psvm+Tab即可生成循环.System.out.main方法等boilerplate样板代码 例如要输入for(User user : users)只需输入user.f ...

  10. Java学习|Exception和Error有什么区别?

    典型回答:      Exception和Error都继承了Throwable类,java中只有Throwable类型的实例才能被Throw(抛出)或者catch(捕获).      Exceptio ...