题目链接: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. AppBoxFuture: 123挨个站-数据按序存储

      最近几天在优化存储的编码规则,顺带把之前设计了但未实现的倒排序一并实现了.由于所有数据(元数据.实体.索引等)都映射至RocksDB的Key-Value存储,所以必须扩展RocksDB的自定义比较 ...

  2. 使用nginx代理centos yum 源

    我们在安装centos 服务器时,可能会有以下情况: 局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通. 那么我们再使用 yum 安装软件 ...

  3. 《HTTP权威指南》--阅读笔记(一)

    HTTP: HyperText Transfer Protocol 测试站点:http://www.joes-hardware.com URI包括URL和URN URI: Uniform Resour ...

  4. idea+Spring+Mybatis+jersey+jetty构建一个简单的web项目

    一.先使用idea创建一个maven项目. 二.引入jar包,修改pom.xml <dependencies> <dependency> <groupId>org. ...

  5. viewpager_轮播

    public class MainActivity extends Activity { private ViewPager pager; private int[] id={R.layout.lay ...

  6. 通过Blazor使用C#开发SPA单页面应用程序(2)

    今天我们尝试创建一个默认的Blazor应用. 1.安装 .Net Core 3.0需要Visual Studio 2019 的支持. 安装.Net Core 3.0 预览版 SDK版本,注意预览版对应 ...

  7. linux100day(day4)--文本处理三剑客

    在介绍三剑客之前,先来认识一下通配符和正则表达式 通配符 正则表达式 作用:通过一些特殊字符,来表示一类字符内容 1.字符匹配 .     任意一个字符 [ ]   范围内的任意一个字符 [^ ] 取 ...

  8. if else 深度优化

    一. if else表达式过于复杂 if ((condition1 && condition2 ) || ((condition2 || condition3) && ...

  9. APP手机商城系统选择,混合开发与原生开发哪个好?

    关于手机APP开发用混合还是原生现在说法不一,有说混合开发好:时间短.费用低.效果也不错,有说原生开发好,原生APP在性能方面比较好.而商城系统中的手机APP用混合开发还是原生开发比较好呢? 最近我参 ...

  10. maven学习(3)pom.xml文件说明以及常用指令

    pom.xml文件的结构: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/ ...