「EZEC」Round 6 周年欢乐赛 A题
前几天参加了 「 E Z E C − 6 」 「EZEC -6」 「EZEC−6」,虽然仅仅尝试了 d i v 2 div2 div2的ABC三道题,但感受颇深。
A - 「EZEC-6」加减
题目
算法分析
关于
m
m
m的取值会有以下三种情形:
前两种经过简单思考可以清楚的明白,关于最后一种的理解,可参考以下分析。
Code
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define ll long long
#define rg register
using namespace std;
inline ll sread()
{
ll x=0,f=1;char c=getchar();
while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=x*10+c-'0';c=getchar();}
return f*x;
}
int T,n,m;
int main()
{
T=sread();
for(rg int e=1;e<=T;++e)
{
n=sread(); m=sread();
if(m>=n*(n+3)/2) {
for(rg int j=2;j<=n;++j)
{
printf("%d ",j);
}
printf("%d\n%d\n",m-(n-1)*(n+2)/2,m-1);
} //第一种情形
else if(m<n*(n+1)/2) {
printf("-1\n");
} //第二种情形
else if(m>=n*(n+1)/2&&m<n*(n+3)/2)
{
printf("-1\n");
} //第三种情形
}
return 0;
}
参考文献
完成题目时参考了许多 d a l a o dalao dalao 的 b l o g blog blog ,在此表示感谢
A - 「EZEC-6」加减: https://www.luogu.com.cn/blog/ForeverPursuit/ti-xie-ezec-6-jia-jian