比赛链接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. error: Build input file cannot be found: '*******/node_modules/react-native/Libraries/WebSocket/libfishhook.a' 问题解决记录

    解决了刚才的'config.h' file not found问题,本以为就可以顺畅的跑起来,谁知道又被恶心到了,Build input file cannot be found!!! 问题: err ...

  2. Day Seven

    站立式会议 站立式会议内容总结 331 今天完成: 1.主页面 toolbar 菜单修改为点击弹出两个选项:新增计划和书籍 2.点击新增书籍跳转到文件管理器 home按钮为回退至上级目录,后退按钮为c ...

  3. 团队项目:安卓端用百度地图api定位显示跑道

    因为安卓调用api对我来说是一个完全陌生的领域,我在经过很长时间终于弄出来了,这段时间还是很有成效的,我得到了历练. 第一步:注册成为百度开发者 在百度地图开放平台创建应用.地址http://lbsy ...

  4. Linux kernel 发布 5.0-rc1 版本

    Linux kernel 要发布 5.0 了.. 跟原因是 linus 认为 4.21的小版本号太多了... 邮件内容如下: https://lore.kernel.org/lkml/20190107 ...

  5. ES6学习笔记(四):异步操作

    Promise Promise三种状态 pending.resolved.rejected 使用语法 var promis = new Promise(function(resolve,reject) ...

  6. ELK环境配置

    一.安装java环境 1.下载jre并安装,安装过程中没有什么特殊的,一直默认下一步即可. 2.配置环境变量 其中变量值为我们安装的jre的路径 二.安装elasticsearch 1.下载es安装包 ...

  7. Nginx 配置遇到问题

    1 connect() to 10.2.20.170:1009 failed (13: Permission denied) while connecting to upstream 现这个错误是因为 ...

  8. Django_基于模块的单例模式

    基于模块的单例模式  原理: Python 的独有特性 : 模块的导入只能生效一次. 再重复导入只要基于一套环境都是使用的 最初 的那份资源.  示例: 文档结构: # mysingleton.py ...

  9. oracle 查出一个表中字段值出现次数大于2的所有记录

    表web_order  列 name ,businesscode, a.account 周桥 18929609222 3754031157710000妙药 18929609233 3754031157 ...

  10. 洛谷 P1309 瑞士轮 解题报告

    P1309 瑞士轮 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公平,偶然性较低 ...