1、E - Fridge

教训:做题的时候,没有想清楚问题,把问题复杂化了

#include <bits/stdc++.h>
#define int long long
using namespace std; const int N = 1010;
string st;
int cnt[N], minn = N, pos;
struct node
{
int num;
int sum;
bool operator<(const node &p) const
{
if (sum < p.sum)
return true;
else if (sum == p.sum && num < p.num)
return true;
return false;
}
} a[N]; signed main()
{
cin >> st;
for (int i = 0; i < st.size(); i++)
{
int x = st[i] - '0';
cnt[x]++;
}
for (int i = 1; i <= 9; i++)
{
if (cnt[i] == 0)
{
cout << i;
return 0;
}
}
for (int i = 0; i < 10; i++)
{
a[i].num = i;
a[i].sum = cnt[i];
}
if (!a[0].sum)
{
cout << 10;
return 0;
}
sort(a + 1, a + 10);
if (a[0].sum < a[1].sum)
{
cout << 1;
for (int i = 1; i <= a[0].sum + 1; i++)
{
cout << 0;
}
}
else
{
for (int i = 1; i <= a[1].sum + 1; i++)
{
cout << a[1].num;
}
}
return 0;
}

2、J - Secret Santa

教训:数据范围比较大,直接暴力会超时,并且推公式比较麻烦,优先考虑打表

思路:当n >= 9时,会达到极限,后面的概率值都是一样的。

#include<bits/stdc++.h>
#define int long long
using namespace std; const int N = 1010;
int a[N], num = 1, n;
double cnt[N]; signed main(){
cin >> n;
for(int i = 1; i <= 10; i++) a[i] = i;
int ans = 0;
for(int i = 1; i <= 10; i++){
ans = 0;
num = num * i;
do{
for(int j = 1; j <= i; j++){
if(a[j] == j){
ans ++;
break;
}
}
}while(next_permutation(a + 1, a + 1 + i));
cnt[i] = 1.0 * ans / num;
}
if(n >= 10) cout <<fixed << setprecision(8) << cnt[10];
else cout <<fixed << setprecision(8) << cnt[n];
}

3、CF1656C Make Equal With Mod

思路:如果想让所有的序列变成0,那么只需从序列最大的数开始取模,这样最后的结果一定是0

#include<bits/stdc++.h>
using namespace std; const int N = 1e5 + 10;
int n, a[N], t; signed main(){
cin >> t;
while(t --){
cin >> n;
set<int> s;
for(int i = 1; i <= n; i++){
cin >> a[i];
s.insert(a[i]);
}
bool flag1 = false, flag2 = false;
for(set<int>::iterator it = s.begin(); it != s.end(); it ++){
if(*it == 0) flag1 = true;
if(*it == 1) flag2 = true;
}
if(flag1 && flag2){
cout <<"NO" << endl;
}
else{
sort(a + 1,a + 1 + n);
bool flag = true;
for(int i =1 ; i < n; i++){
if(a[i + 1] - a[i] == 1 && a[1] == 1) {
flag = false; break;
}
}
if(!flag) cout << "NO" << endl;
else cout <<"YES" << endl;
}
}
return 0;
}

4、D - Down the Pyramid

思路:求可变化的数的上界和下界,学会区分上界和下界。

#include<bits/stdc++.h>
using namespace std; const int N = 1e6 + 10;
int n, a[N], now, minn = 0, maxn = 0x3f3f3f3f; signed main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
for(int i = 1; i <= n; i++){
now = a[i] - now;
if(i % 2 == 1){//偶数减x,所以x有最大值,要取上界最小值
maxn = min(maxn, now);
}
else{//奇数 + x,所以x有最小值
minn = max(minn, -now);
}
}
if(minn > maxn) cout <<"0";
else cout << maxn - minn + 1;
return 0;
}

cf的几道小题的更多相关文章

  1. CF上的3道小题(2)

    CF上的3道小题(2) T1:CF630K Indivisibility 题意:给出一个数n,求1到n的数中不能被2到9中任意一个数整除的数. 分析:容斥一下,没了. 代码: #include < ...

  2. CF上的3道小题(1)

    CF上的3道小题 终于调完了啊.... T1:CF702E Analysis of Pathes in Functional Graph 题意:你获得了一个n个点有向图,每个点只有一条出边.第i个点的 ...

  3. 关于SQL的几道小题详解

    关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样 ...

  4. 逛园子,看到个练习题,小试了一把(淘宝ued的两道小题)

    闲来无事,逛园子,充充电.发现了一个挺有意思的博文,自己玩了一把. 第一题:使用 HTML+CSS 实现如图布局,border-widht 1px,一个格子大小是 60*60,hover时候边框变为橘 ...

  5. 常让人误解的一道js小题

    一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...

  6. [2]十道算法题【Java实现】

    前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...

  7. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  8. 各位大佬Python的第一部分道基础题已经整理好了,希望大家面试的时候能用的上。

    Python的第一部分道基础题,希望大家面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途 ...

  9. CF 628B New Skateboard --- 水题

    CD 628B 题目大意:给定一个数字(<=3*10^5),判断其能被4整除的连续子串有多少个 解题思路:注意一个整除4的性质: 若bc能被4整除,则a1a2a3a4...anbc也一定能被4整 ...

  10. CF 628A --- Tennis Tournament --- 水题

    CF 628A 题目大意:给定n,b,p,其中n为进行比赛的人数,b为每场进行比赛的每一位运动员需要的水的数量, p为整个赛程提供给每位运动员的毛巾数量, 每次在剩余的n人数中,挑选2^k=m(m & ...

随机推荐

  1. SQLServer的varchar与nvarchar的学习之二

    SQLServer的varchar与nvarchar的学习之二 背景 昨天简单总结了多种数据库 varchar和nvarchar的区别与关系 今天想着能够分析一下数据库文件. 计划使用winhex 查 ...

  2. [转帖]《Linux性能优化实战》笔记(三)—— CPU 上下文切换(下)

    上篇介绍了三种CPU 上下文切换以及它们可能造成的问题和原因,这一篇来看看在系统中如何发现CPU 上下文切换问题. 一. 查看上下文切换情况 主要使用两个命令:vmstat以及之前用过的pidstat ...

  3. [转帖]kubelet 原理解析六: 垃圾回收

    https://segmentfault.com/a/1190000022163856 概述 在k8s中节点会通过docker pull机制获取外部的镜像,那么什么时候清除镜像呢?k8s运行的容器又是 ...

  4. [转帖] Linux命令拾遗-理解系统负载

    https://www.cnblogs.com/codelogs/p/16060498.html 简介# 这是Linux命令拾遗系列的第七篇,本篇主要介绍Linux中负载的概念与问题诊断方法. 本系列 ...

  5. [转帖]Nginx(2):架构设计与工作流程

    https://cloud.tencent.com/developer/article/1886166?areaSource=&traceId= 这些天呐,实在是给我看晕了.起因自然还是对 n ...

  6. JVM内存学习 2.0

    先说一下结果 1. Linux的内存分配是惰性分配的. APP申明了 kernel并不会立即进行初始化和使用. 2. JVM的内存主要分为, 堆区, 非堆区, 以及jvm使用的其他内存. 比如直接内存 ...

  7. 范德蒙德矩阵行列式 & 循环矩阵行列式的证明

    范德蒙德矩阵的行列式 \[\begin{vmatrix} 1 & 1 & 1 & \dots & 1 \\ x_1 & x_2 & x_3 & ...

  8. 【解决了一个小问题】在某个linux基础镜像中安装python特定的版本

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 在某个基础镜像中,安装了python3.6.但是一个测试需 ...

  9. ABP-VNext 用户权限管理系统实战----问题与解决方案

    1.swagger请求总是报:400 Bad Request,但是postman请求是没有问题 查看日志报表: 解决方案: 在 ConfigureServices 中增加如下的内容 Configure ...

  10. 【druid切换hikari连接池】通过源码分析遇到的问题

    一.前言说明 如果不会配置druid连接池的话,可以参考我这篇博文:springboot整合druid: springboot整合所有的starter方法基本都差不多,添加依赖,开启注解,编写配置,增 ...