题目链接: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. CountDownLatch实现多线程并发请求

    package com.test; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Dat ...

  2. Spring aop 影响本地事务的回滚总结

    1  @Before   不会,因为还没执行到service的业务逻辑 2  @ After    默认情况下,报错会影响事务回滚., 当设置@Order属性并设置值优先级大小, 即使报错也不会回滚了 ...

  3. django drf框架中的user验证以及JWT拓展的介绍

    登录注册是几乎所有网站都需要去做的接口,而说到登录,自然也就涉及到验证以及用户登录状态保存,最近用DRF在做的一个关于网上商城的项目中,引入了一个拓展DRF JWT,专门用于做验证和用户状态保存.这个 ...

  4. String——字符串

    首先看一下string的一部分源码吧 public final class String private final char value[]; 我们暂且只看这两行, 第一行String被final修 ...

  5. java并发编程(十五)----(线程池)java线程池简介

    好的软件设计不建议手动创建和销毁线程.线程的创建和销毁是非常耗 CPU 和内存的,因为这需要 JVM 和操作系统的参与.64位 JVM 默认线程栈是大小1 MB.这就是为什么说在请求频繁时为每个小的请 ...

  6. Spring入门(九):运行时值注入

    Spring提供了2种方式在运行时注入值: 属性占位符(Property placeholder) Spring表达式语言(SpEL) 1. 属性占位符 1.1 注入外部的值 1.1.1 使用Envi ...

  7. 实现API管理系统的几个重要关键词

    管理API的需求源自于Web API开展业务.从2006年开始,然后逐渐成熟,并在2016年之前进入市场.无论是通过代理现有API的管理网关.本身作为用于部署API本身的网关的一部分,还是作为连接层在 ...

  8. Elasticsearch 7.x 最详细安装及配置

    Elasticsearch 7.x 最详细安装及配置 一.Elasticsearch 7.x 小马哥说过,学习技术栈得看版本,那么 Elasticsearch 7.x 有什么好的特性呢? ES 7.0 ...

  9. 入门MySQL——用户与权限

    前言:  前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...

  10. Spring源码剖析5:JDK和cglib动态代理原理详解

    AOP的基础是Java动态代理,了解和使用两种动态代理能让我们更好地理解 AOP,在讲解AOP之前,让我们先来看看Java动态代理的使用方式以及底层实现原理. 转自https://www.jiansh ...