157. Two Sets【数学 构造】

该博客探讨了一个数学问题:如何将1到n的整数分成两个集合,使得两个集合的和相等。作者指出,当总和为偶数时,问题总有解。代码实现从大到小分配数字,确保两个集合和相等,并输出解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
https://www.papamelon.com/problem/157
通过观察你会发现和为奇数一定无解,和为偶数一定有解。
我们先从大到小的取一个集合,剩下的为一个集合。

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	int n; cin>>n;
	long long int sum=0;
	for(int i=1;i<=n;i++) sum+=i;
	vector<int>st(n+1,0);
	if(sum&1) puts("NO");
	else 
	{
		puts("YES");
		vector<int>ans;
		long long int temp=sum/2;
		for(int i=n;i>=1;i--)
		{
			if(temp>=i) ans.push_back(i),st[i]=1,temp-=i;//可以取
			if(temp==0) break;
		} 
		cout<<ans.size()<<endl;
		for(int i=0;i<ans.size();i++) cout<<ans[i]<<" ";
		cout<<endl;
		cout<<n-ans.size()<<endl;
		for(int i=1;i<=n;i++) if(!st[i]) cout<<i<<" ";
	}
	return 0;
}
<think>好的,用户让我帮忙精简一段英文翻译过来的中文句子,需要保留原意。首先我要仔细理解原句的意思。原句是:“The two sets of results are compared and analyzed to verify the effectiveness of the method. The two sets of results are fused by using Principal Component Analysis (PCA) to obtain the final results of stage division.” 用户希望这段话更简洁,但保留所有内容。首先,注意到两句话都提到“two sets of results”,重复了,可以合并。第一句讲比较分析以验证方法有效性,第二句讲用PCA融合得到阶段划分结果。 接下来,考虑如何合并这两句话。比如用“通过对比分析两组结果验证方法有效性,并采用主成分分析(PCA)融合获得阶段划分结果。”这样将两个动作连接起来,用“并”连接,避免重复“two sets of results”。 然后检查术语是否正确,比如“Principal Component Analysis”翻译成“主成分分析(PCA)”,首次出现需要全称加缩写。用户之前提到过术语规范,所以这里要确保正确。 另外,用户可能是在写学术论文或技术报告,需要简洁且专业的表达。所以需要确保精简后的句子没有遗漏关键信息,同时更流畅。例如,“are compared and analyzed”可以简化为“对比分析”,“fused by using”改为“采用...融合”更直接。 最后,检查语法是否正确,是否符合中文表达习惯,比如动词的位置和连接词的使用是否恰当。确保保留原意,没有信息丢失,比如验证方法有效性和阶段划分结果都保留下来了。</think>**精简后:** 通过对比分析两组结果验证方法有效性,并采用主成分分析(PCA)融合实现阶段划分。 **优化说明:** 1. **合并重复主体** - 原句两次出现 "two sets of results",合并为"两组结果"单次出现 - 通过分号连接两个动作:"验证有效性" + "实现阶段划分" 2. **动词强化** - "compared and analyzed" → "对比分析"(体现动作的完整性) - "fused...to obtain" → "融合实现"(突出技术手段与目标的关系) 3. **术语规范** - 保留 "Principal Component Analysis (PCA)" 全称缩写格式 - "stage division" 译为专业术语"阶段划分" 4. **逻辑压缩** - 删除冗余表述:"final results"("实现"已隐含最终性) - 简化因果链条:验证与方法有效性直接关联 5. **句式结构验证:** 原内容要素: ```bnf <验证> ::= 对比分析 + 两组结果 + 方法有效性 <处理> ::= PCA融合 + 阶段划分结果 ``` 优化后完整覆盖所有技术节点,符合科技文献表达规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值