Good Bye 2023 (CF)

文章讲述了如何根据给定数组b推断原数组a,当b整除a时,计算b的平方除以a;否则,计算a和b的最小公倍数。涉及到了整除、质因数分解和最小公倍数的计算方法。

A.

求一个元素乘积为 2023 的数组 a,其中的 k 个元素被移除后得到数组 b。现在告诉你 b,问是否能找到一个满足以上条件的数组 a。

思路:直接看是否能整除即可。

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 1e9;

int a[10];
void solve()
{
    int n,k;
	cin>>n>>k;
	int sum=1;
	for (int i=1;i<=n;i++){
		cin>>a[i];
		sum*=a[i];
	}
	
	if(2023%sum!=0){
		cout<<"NO"<<endl;
	}
	else {
		cout<<"YES"<<endl;
		cout<<2023/sum<<" ";
		for (int i=1;i<=k-1;i++){
			cout<<1<<" ";
		}
		cout<<endl;
	}
	
	
	
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t;
	cin>>t;
	
	while(t--){
		solve();
	}
	
	
}

B.

思路:当b整除a时,b=a*p。p为x的最小质因数。 x=b*p =b*b/a.

当b不能整除a时,x=lcm(ab)

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 1e9;

int lcm(int a,int b)
{
	return a*b/__gcd(a,b);
}
void solve()
{
	int a,b;
	cin>>a>>b;
	if(b%a==0){
		cout<<b*b/a<<endl;
	}
	else {
		cout<<lcm(a,b)<<endl;
	}

}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t;
	cin>>t;
	
	while(t--){
		solve();
	}
	
	
}

 C

 

思路:博弈论。当一奇一偶合并时,总和会减一,根据最优解,第一人要让奇数尽可能的小。

 而第二人则选择奇数和偶数合并。所以每一回合减少3个奇数。

如果奇数mod 3为1 总和为sum-cnt/3-1.   如果奇数数mod3为 2或0  和为sum-cnt/3.

 .D

思路:构造题。通过169,961,196,三个数来构造。可向196后面加100的倍数,向169,961中间加0.

#include <bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 1e9;


void solve()
{
	int n;
	cin>>n;
	
	if(n==1) {
		cout<<1<<endl;
		return ;
	}
	
    cout<<196<<string(n-3,'0')<<'\n';
	for (int i=0;i<n/2;i++){
		cout<<1<<string(i,'0')<<6<<string(i,'0')<<9<<string(n-3-2*i,'0')<<endl;
		cout<<9<<string(i,'0')<<6<<string(i,'0')<<1<<string(n-3-2*i,'0')<<'\n';
	}

	
	
	
}
signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t;
	cin>>t;
	
	while(t--){
		solve();
	}
	
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值