当前位置:网站首页>B. Same Parity Summands
B. Same Parity Summands
2022-08-10 20:44:00 【秦小咩】
B. Same Parity Summands
B. Same Parity Summands
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given two positive integers nn (1≤n≤1091≤n≤109) and kk (1≤k≤1001≤k≤100). Represent the number nn as the sum of kk positive integers of the same parity (have the same remainder when divided by 22).
In other words, find a1,a2,…,aka1,a2,…,ak such that all ai>0ai>0, n=a1+a2+…+akn=a1+a2+…+ak and either all aiai are even or all aiai are odd at the same time.
If such a representation does not exist, then report it.
Input
The first line contains an integer tt (1≤t≤10001≤t≤1000) — the number of test cases in the input. Next, tt test cases are given, one per line.
Each test case is two positive integers nn (1≤n≤1091≤n≤109) and kk (1≤k≤1001≤k≤100).
Output
For each test case print:
- YES and the required values aiai, if the answer exists (if there are several answers, print any of them);
- NO if the answer does not exist.
The letters in the words YES and NO can be printed in any case.
Example
input
Copy
8 10 3 100 4 8 7 97 2 8 8 3 10 5 3 1000000000 9
output
Copy
YES 4 2 4 YES 55 5 5 35 NO NO YES 1 1 1 1 1 1 1 1 NO YES 3 1 1 YES 111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111110 111111120
=========================================================================
分别讨论奇数偶数情况,奇数的话,先都放上1,然后每个数字再分别填上2,保证奇偶性相同,这就要求剩下的数字必须是偶数,否则无法构造,输出的时候只需要把全部2都加在一个位置上即可。然后讨论偶数的情况,先都放上2,剩下的必须也是2的倍数。
#include<iostream>
#include<cstdio>
#include<cstring>
# include<iomanip>
#include<algorithm>
#define mo 998244353;
using namespace std;
typedef long long int ll;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
if(k>n)
{
cout<<"NO"<<endl;
}
else if(k==n)
{
cout<<"YES"<<endl;
for(int i=1;i<=n;i++)
{
cout<<1<<" ";
}
cout<<endl;
}
else
{
int flag1=0,flag2=0;
int temp1=n-k;
if(temp1<0||temp1%2)
flag1=1;
int temp2=n-2*k;
if(temp2<0||temp2%2)
flag2=1;
if(flag1&&flag2)
{
cout<<"NO"<<endl;
}
else
{
cout<<"YES"<<endl;
if(!flag1)
{
for(int i=1;i<k;i++)
{
cout<<1<<" ";
}
cout<<1+temp1<<endl;
}
else
{
for(int i=1;i<k;i++)
{
cout<<2<<" ";
}
cout<<2+temp2<<endl;
}
}
}
}
return 0;
}
边栏推荐
猜你喜欢
The most complete GIS related software in history (CAD, FME, ArcGIS, ArcGISPro)
电信保温杯笔记——《统计学习方法(第二版)——李航》第17章 潜在语义分析
双 TL431 级联振荡器
Echart饼状图标注遮盖解决方案汇总
机器学习模型验证:被低估的重要一环
JS中的filter、map、reduce
(12) findContours function hierarchy explanation
UE4 - 河流流体插件Fluid Flux
leetcode:45. 跳跃游戏II
论文解读(g-U-Nets)《Graph U-Nets》
随机推荐
实施MES管理系统前,这三个问题要考虑好
【ACM】dp专场训练
卡片盒笔记法的操作步骤
【CMU博士论文】视频多模态学习:探索模型和任务复杂性,152页pdf
大小端的理解以及宏定义实现的理解
The most complete GIS related software in history (CAD, FME, ArcGIS, ArcGISPro)
Pt/CeO2 monatomic nanoparticles enzyme | H - rGO - Pt @ Pd NPs enzyme | carbon nanotube load platinum nanoparticles peptide modified nano enzyme | leukemia antagonism FeOPtPEG composite nano enzyme
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
(12) findContours function hierarchy explanation
kuberentes Auditing 入门
Transferrin-modified vincristine-tetrandrine liposomes | transferrin-modified co-loaded paclitaxel and genistein liposomes (reagents)
Multifunctional Nanozyme Ag/PANI | Flexible Substrate Nano ZnO Enzyme | Rhodium Sheet Nanozyme | Ag-Rh Alloy Nanoparticle Nanozyme | Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme
工程师应该怎么学习
金鱼哥RHCA回忆录:CL210OpenStack操作的故障排除--章节实验
Before implementing MES management system, these three questions to consider
机器学习笔记:t-SNE
Echart饼状图标注遮盖解决方案汇总
idea插件 协议 。。 公司申请软件用
ACM MM 2022 统一归一化:加速Transformer工业部署的归一化方法
详叙c中的分支与循环