比赛链接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甲题题解-1040. Longest Symmetric String (25)-求最长回文子串

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789177.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  2. Linux第三周学习总结——构造一个简单的Linux系统MenuOS

    第三周学习总结--构造一个简单的Linux系统MenuOS 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  3. Hadoop 4 MapReduce

    对单词个数统计的MapReduce的案例 Mapper类: package main.java.worldClient; import java.io.IOException; import org. ...

  4. 软工实践周六实践课安排(2017秋学期) | K 班

    软工实践周六实践课安排(2017秋学期) | K 班 周数 截止时间 工作内容 阶段成果展示形式 验收方式 备注 4之前 2017.10月前 组队 随笔(提供组队名单.组队队员的介绍--包括擅长的地方 ...

  5. 2013长春网赛1009 hdu 4767 Bell(矩阵快速幂+中国剩余定理)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4767 题意:求集合{1, 2, 3, ..., n}有多少种划分情况bell[n],最后结果bell[ ...

  6. CentOS下搭建Hadoop

    目录 安装配置jdk 安装Hadoop 下载解压 配置文件 启动hadoop 格式化HDFS 停止hdfs和yarn 参考:Hadoop官网文档 版本:hadoop-3.2.0 安装配置jdk 因ha ...

  7. Oracle VirtualBox添加虚拟机

    Oracle VirtualBox添加虚拟机 我的台式机是毁灭者,主板是华硕主板:安装的系统是win7 64bit.本来默认打算在该机器上面安装virtualBox,然后在virtualBox上面安装 ...

  8. eclipse对maven项目进行打war包

    1. 利用pom.xml进行打包 右键项目名称或者pom.xml文件,选择debugAS或者runAS,选择maven install执行成功之后日志会打印输出位置 2. 使用命令打包 右键项目名称, ...

  9. 5Java异常处理

    五.异常 异常概念总结:   练习一:异常的体系    问题:    1. 请描述异常的继承体系    2. 请描述你对错误(Error)的理解    3. 请描述你对异常(Expection的理解) ...

  10. MT【74】不可能是哪个函数?

    解答:设$f(g(x_0))=x_0$,则$g(f(g(x_0)))=g(x_0)$,令$y_0=g(x_0)$则$g(f(y_0))=y_0$有解.易得答案为$B$.