比赛链接https://vjudge.net/contest/256988#status/17111202012/C/0/

大意:三个操作,使得输入的数中,从1-n,每一个数出现的次数相同。

wa代码(只是考虑了三个数的情况):

#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<stdio.h>
using namespace std;
# define maxn 1000+10
# define inf 0x3f3f3f3f
int vis[maxn];
int main()
{
int n,m;
memset(vis,0,sizeof(vis));
scanf("%d%d",&n,&m);
for(int i=1; i<=m; i++)
{
int temp;
scanf("%d",&temp);
vis[temp]++;
}
if((m+1)%n==0)
{
int t=(m+1)/n;
int num1=0,num2=0;
int s=0;
for(int i=1; i<=n; i++)
{
if(vis[i]!=t)
{
num1++;
num2=vis[i];
s=i;
}
}
if(num1==1&&num2==t-1)
{
printf("+%d\n",s);
return 0;
}
}
if((m-1)%n==0)
{
int t=(m-1)/n;
int num1=0,num2=0;
int s=0;
for(int i=1; i<=n; i++)
{
if(vis[i]!=t)
{
num1++;
num2=vis[i];
s=i;
}
}
if(num1==1&&num2==t+1)
{
printf("-%d\n",s);
return 0;
}
}
if(m%n==0)
{
int temp=m/n;
int s1=inf,s2=-inf,w1,w2;
for(int i=1; i<=n; i++)
{
if(vis[i]<s1)
{
s1=vis[i];
w1=i;
}//出现的最小次数
if(vis[i]>s2)
{
s2=vis[i];
w2=i;
}//出现的最多次数
}
if(s1==s2-2&&s1+1==temp)
{
printf("-%d+%d\n",w2,w1);
return 0;
}
}
printf("*\n");
return 0;
}

AC代码(新思路,按照平均数来找):

#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<stdio.h>
using namespace std;
# define maxn 1000+10
# define inf 0x3f3f3f3f
int vis[maxn];
int main()
{
int n,m;
memset(vis,0,sizeof(vis));
scanf("%d%d",&n,&m);
for(int i=1; i<=m; i++)
{
int temp;
scanf("%d",&temp);
vis[temp]++;
}
if((m+1)%n==0)
{
int t=(m+1)/n;
int num1=0,num2=0;
int s=0;
for(int i=1; i<=n; i++)
{
if(vis[i]!=t)
{
num1++;
num2=vis[i];
s=i;
}
}
if(num1==1&&num2==t-1)
{
printf("+%d\n",s);
return 0;
}
}
if((m-1)%n==0)
{
int t=(m-1)/n;
int num1=0,num2=0;
int s=0;
for(int i=1; i<=n; i++)
{
if(vis[i]!=t)
{
num1++;
num2=vis[i];
s=i;
}
}
if(num1==1&&num2==t+1)
{
printf("-%d\n",s);
return 0;
}
}
if(m%n==0)
{
int temp=m/n;
int s1=inf,s2=-inf,w1,w2;
for(int i=1; i<=n; i++)
{
if(vis[i]<s1)
{
s1=vis[i];
w1=i;
}//出现的最小次数
if(vis[i]>s2)
{
s2=vis[i];
w2=i;
}//出现的最多次数
}
if(s1==s2-2&&s1+1==temp)
{
printf("-%d +%d\n",w2,w1);
return 0;
}
}
printf("*\n");
return 0;
}

日常训练赛 Problem C – Complete Naebbirac’s sequence的更多相关文章

  1. 10.0.0.55_12-16训练赛部分writeup

    0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...

  2. Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)

    Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...

  3. Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)

    Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...

  4. 7.30 正睿暑期集训营 A班训练赛

    目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...

  5. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  6. 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky

    昨晚乱入学弟的训练赛,想了一下这个题.推导的过程中,加深了对公理化的概率论理解.$\newcommand{\d}{\mathop{}\!\mathrm{d}}$ 解法一 考虑 $ d < L$ ...

  7. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  8. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  9. RDC去省赛玩前の日常训练 Chapter 2

    2018.4.9 施展FFT ing! 马上就要和前几天学的斯特林数双剑合璧了!

随机推荐

  1. PAT甲题题解-1002. A+B for Polynomials (25)-多项式相加

    注意两点:1.系数也有可能加起来为负!!!一开始我if里面判断为>0导致有样例没过...2.如果最后所有指数的系数都为0,输出一个0即可,原本以为是输出 1 0 0.0... #include ...

  2. Scrum Meeting NO.2

    Scrum Meeting No.2 1.会议内容 今天,我们对已经确定的任务进行了分配,并针对界面设计方面的细节进行讨论. 由于这周其它课程任务繁重(编译+数据库).前端的任务主要分配给编程能力较好 ...

  3. Book Review 《构建之法》-2

    -敏捷流程包括了几大原则:Backlog.burn-down.Sprint.Scrum. 敏捷开发注重个人之间的交流,提倡尽早的交付有价值的软件满足顾客的需求, 在开发过程中不断与客户进行交互,变化. ...

  4. Docker(二十五)-Docker Machine

    Docker Machine 是什么? Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在 ...

  5. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量

    大家在中学就已经学过变量的概念了.例如:我们令 x = 100,则可以推出 x*2 = 200 试试下面这段 Python 代码 import turtle turtle.shape("tu ...

  6. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作

    一.关于 Python Python 是全球使用人数增长最快的编程语言!它易于入门.功能强大,从 Web 后端 到 数据分析.人工智能,到处都能看到 Python 的身影. Python 有两个主要的 ...

  7. MySQL:日期类型

    1. datetime(年月日时分秒) 格式:‘YYY-MM-DD HH:MM:SS’. 占用:8字节 范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59. ti ...

  8. Steady Cow Assignment POJ - 3189 (最大流+匹配)

    Farmer John's N (1 <= N <= 1000) cows each reside in one of B (1 <= B <= 20) barns which ...

  9. 【题解】 [SCOI2010]连续攻击游戏 (二分图匹配)

    原题目戳我 Solution: 方法很巧妙,我们把每个装备的属性 与 装备编号连起来 从1-10000跑二分图,如果出现断层,就退出,输出答案就好. memset清理bool快一点,int洛谷上超时了 ...

  10. 基于Spark Mllib的文本分类

    基于Spark Mllib的文本分类 文本分类是一个典型的机器学习问题,其主要目标是通过对已有语料库文本数据训练得到分类模型,进而对新文本进行类别标签的预测.这在很多领域都有现实的应用场景,如新闻网站 ...