日常训练赛 Problem C – Complete Naebbirac’s sequence
比赛链接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的更多相关文章
- 10.0.0.55_12-16训练赛部分writeup
0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)
Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...
- 7.30 正睿暑期集训营 A班训练赛
目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...
- 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)
题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...
- 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky
昨晚乱入学弟的训练赛,想了一下这个题.推导的过程中,加深了对公理化的概率论理解.$\newcommand{\d}{\mathop{}\!\mathrm{d}}$ 解法一 考虑 $ d < L$ ...
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...
- HDU6579 2019HDU多校训练赛第一场1002 (线性基)
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...
- RDC去省赛玩前の日常训练 Chapter 2
2018.4.9 施展FFT ing! 马上就要和前几天学的斯特林数双剑合璧了!
随机推荐
- 20135202闫佳歆--week7 可执行程序的装载--学习笔记
此为个人学习笔记存档 week 7 可执行程序的装载 一.预处理.编译.链接和目标文件的格式 可执行文件的创建--预处理.编译和链接 cd Code vi hello.c gcc -E -o hell ...
- android开发心得之知识的量变到质变
随着身边越来越多的人开始了尝试android开发,看着他们一点点学期 从nodepad++写代码 cmd 执行,到安装eclipse 和android SDK,仿佛看到了昨天的我一样,一样勤勤恳恳的学 ...
- 模拟事件【JavaScript高级程序设计第三版】
事件,就是网页中某个特别值得关注的瞬间.事件经常由用户操作或通过其他浏览器功能来触发.但很少有人知道,也可以使用JavaScript 在任意时刻来触发特定的事件,而此时的事件就如同浏览器创建的事件一样 ...
- java 栈和堆
- Codeforces 859D - Third Month Insanity
题意 有 \(2^n\) 个人要进行比赛,每次 \(2i\) 与 \(2i+1\) 号人进行比赛(\(i\in [0,2^{n-1})\) ).这一轮中赢的人进入下一轮.下一轮比赛的时候把进入这一轮的 ...
- Duplicate spring bean id
问题背景:从本地调用服务器的dubbo接口进行测试 实现思路:基于IDEA+Spring+maven+Dubbo搭建测试项目,从本地直接调用 具体实现思路可参考博客:https://www.cnb ...
- 【刷题】BZOJ 4000 [TJOI2015]棋盘
Description Input 输入数据的第一行为两个整数N,M表示棋盘大小.第二行为两个整数P,K, 表示攻击范围模板的大小,以及棋子在模板中的位置.接下来三行, 每行P个数,表示攻击范围的模版 ...
- 【刷题】BZOJ 2734 [HNOI2012]集合选数
Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...
- WEB入门之十二 jquery简介
学习内容 jQuery简介 搭建jQuery开发环境 jQuery基本选择器 能力目标 熟悉jQuery开发环境 能编写简单的jQuery代码 本章简介 在前面两章,我们学习了JavaScript面向 ...
- easyui form 提交问题,纠结了很久,有点诡异
http://www.iteye.com/problems/131602 form 提交,后台运行有时慢,页面就不等后台数据的响应,直接alert("服务器维护中,请稍后再试!") ...