2025 11联测 3

实力评估

 文件 IO比赛题目

时间限制: 1000MS空间限制: 256MB

题目描述

本次 新赛道CSP-J/S十一连测 一共有 n 名同学参加,对于每个同学用一个整数 ai​ 表示他的实力系数。

为了更深入地评估本次比赛的精彩程度,我们认为同学 i 和同学 j 的实力差距是他们实力系数差值绝对值的平方,即 ∣ai​−aj​∣2。

现在想要计算本次 新赛道CSP-J/S十一连测 的精彩程度,即在全部同学中选择两位同学,计算他们的实力差距。把所有选择情况中的实力差距计算一个总和并输出。

具体而言,需要输出 ∑i=1n−1​∑j=i+1n​∣ai​−aj​∣2 。

输入格式

输入的第一行包含一个正整数 n,表示一共有多少位同学。

输入的第二行包含 n 个整数 ai​,表示每个同学的实力系数。

输出格式

输出共一行,包含一个整数,表示本次 新赛道CSP-J/S十一连测 的精彩程度。

样例输入 1 

3
2 8 4

样例输出 1 

56

样例输入 2 

5
-5 8 9 -4 -3

样例输出 2 

950

提示/说明

样例 1 解释

∣2−8∣2+∣2−4∣2+∣8−4∣2=36+4+16=56。

样例 2 解释

∣−5−8∣2+∣−5−9∣2+∣−5−(−4)∣2+∣−5−(−3)∣2+∣8−9∣2+∣8−(−4)∣2+∣8−(−3)∣2+∣9−(−4)∣2+∣9−(−3)∣2+∣−4−(−3)∣2=169+196+1+4+1+144+121+169+144+1=950

数据规模与约定

  • 对于 40% 的数据,保证 n≤1000,∣ai​∣≤10。
  • 对于 100% 的数据,保证 n≤1×105,∣ai​∣≤1000。

代码:

#include <bits/stdc++.h>
 using namespace std;
 const int MAXN = 1e5 + 5;
 long long n, a[MAXN], sum1 = 0, sum2 = 0;
 int main(){
     freopen("evaluation.in","r",stdin);
	freopen("evaluation.out","w",stdout);
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        sum1 += a[i];
        sum2 += a[i] * a[i];
    }
    long long ans = n * sum2 - sum1 * sum1;
    cout << ans << endl;
    return 0;
 }

简单的乘法

 文件 IO比赛题目

时间限制: 1000MS空间限制: 512MB

题目描述

王老师正在研究乘法。

​ 王老师有一个序列 a1​,a2​,...,an​ ,王老师希望从中选出其中 x1​,x2​,...,xm​ 使得 (((x1​×c1​+x2​)×c2​+x3​)...+xm​)×cm​ 尽可能大

输入格式

第一行两个整数 n,m 。

第二行 n 个整数 ai​ 。

第三行 m 个小数 ci​。

输出格式

一个小数,保留1位小数

样例输入 1 

5 3
10 20 40 80 30
-1.1 0.9 1.02

样例输出 1 

108.2

样例输入 2 

见下发大样例

样例输出 2 

见下发大样例

提示/说明

【子任务】

对于30%的数据,1≤n≤5

对于另外30%的数据,ci​>0

对于100%的数据,1≤m≤n≤105,0≤ai​≤105,∣ci​∣≤2,保证最后结果小于1018,建议使用long double进行运算

代码

 #include<bits/stdc++.h>
 #define db long double
 using namespace std;
 const int N=1e5+5;
 int n,m,a[N];
 db b[N];
 int main() {
     
	freopen("multi.in","r",stdin);
	freopen("multi.out","w",stdout);
 scanf("%d%d",&n,&m);
 for(int i=1;i<=n;i++) {
 scanf("%d",&a[i]);
  }
 sort(a+1,a+n+1);
 for(int i=1;i<=m;i++) {
 scanf("%Lf",&b[i]);
  }
 for(int i=m-1;i;i--) {
 b[i]=b[i]*b[i+1];
  }
 sort(b+1,b+m+1);
 int l=m+1;
 for(int i=1;i<=m;i++) {
 if(b[i]>0) {
 l=i; break;
  }
  }
 db ans=0;
 for(int i=1;i<l;i++) {
 ans+=b[i]*a[i];
  }
 for(int i=l;i<=m;i++) {
 ans+=b[i]*a[n-m+i];
  }
 printf("%.1Lf\n",ans);
 return 0;
 }

基于1的算术

 文件 IO比赛题目

时间限制: 1000MS空间限制: 256MB

题目描述

王老师想要将正整数 n 表示为一些加数的和,其中每个加数可正可负,但都是只包含数字 1 的整数。例如,他可以将 121 表示为 121=111+11+(−1) 。

请你帮助他找到这样的和中所需数字 1 的最小数量。

输入格式

第一行输入一个整数 n。其中 1≤n<1015。

输出格式

输出所需的 1 的最小数量。

样例输入 1 

121

样例输出 1 

6

样例输入 2 

114514

样例输出 2 

32
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<ll> x;
ll dfs(int p, ll n)
{
	if (p < 0)
		return 0;
	ll L = dfs(p - 1, n % x[p]) + (n / x[p]) * (p + 1);
	ll R = dfs(p - 1, abs(n % x[p] - x[p]) % x[p]) + (n / x[p] + (n % x[p] != 0)) * 
	(p + 1);
	return min(L, R);
}
int main(){	
	freopen("based.in","r",stdin);
	freopen("based.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	ll n;
	cin >> n;
	x.push_back(1);
	for (int i = 1; i < 17; i++)
		x.push_back(x.back() * 10 + 1);
	cout << dfs(16, n) << endl;
}

买二送一

 文件 IO比赛题目

时间限制: 1000MS空间限制: 512MB

题目描述

商店里总共有n件商品,他们有价值wi​。

​ 王老师打算买K个礼盒,每个礼盒中包含了两件商品,在王老师的死缠烂打下,商店同意每个礼盒中多加一件赠品,但是赠品的价值不能高于两件正品。

​ 礼盒是用来送的,所以王老师认为礼盒的外观很重要,他定义不和谐值为礼盒中两件商品价值差的绝对值,即∣wi​−wj​∣。

​ 王老师希望所有礼盒的不和谐值的和最小。

输入格式

第一行两个整数n,K。

第二行n个整数wi​。

输出格式

一个整数,表示最小的不和谐值。

样例输入 1 

6 2
8 1 2 3 5 6

样例输出 1 

3

样例输入 2 

见下发大样例

样例输出 2 

见下发大样例

提示/说明

样例解释:

一个礼盒是1 2 3,另一个礼盒是5 6 8

【数据范围】

对于30%的数据,1≤n≤10。

对于70%的数据,1≤n≤300

对于100%的数据,1≤n≤3000,1≤3×K≤n,1≤wi​≤106。

代码:

#include<bits/stdc++.h>
 #define ll long long
 const ll INF=1e18;
 using namespace std;
 const int N=5005;
 int n,m,a[N];
 ll f[N][N];
 bool ex(int i,int j) {
    return i>=j*3;
 }
 int main() {
 scanf("%d%d",&n,&m);
 for(int i=1;i<=n;i++) scanf("%d",&a[i]);
 sort(a+1,a+n+1);
 for(int i=3;i<=n;i++) {
 for(int j=1;j<=m&&ex(i,j);j++) {
 f[i][j]=f[i-2][j-1]+(a[i]-a[i-1]);
 if(ex(i-1,j)) f[i][j]=min(f[i][j],f[i-1][j]);
  }
  }
 cout<<f[n][m];
 return 0;
 }

### 产品联合测试流程和注意事项 产品联合测试(简称“联测”)是软件开发过程中一个关键环节,特别是在多个团队或模块协同开发的场景中。其主要目的是验证不同模块、系统或服务之间的接口是否能够正确交互,确保整体功能的完整性和稳定性。 #### 联测流程 1. **需求对齐与测试计划制定** 在联测开始前,各方需对产品需求、功能边界、接口规范进行明确,并制定详细的测试计划,包括测试范围、测试用例设计、测试环境准备、测试时间安排等。 2. **接口文档准备与评审** 各方需提供完整的接口文档,包括请求方式、参数说明、返回值格式、错误码定义等。通过文档评审确保接口设计合理且无歧义。 3. **测试环境搭建与接口联调** 搭建与生产环境尽可能一致的测试环境,进行接口联调。此阶段主要验证接口是否能正常通信,响应是否符合预期。 4. **执行测试用例与缺陷管理** 根据测试计划执行测试用例,记录测试结果。发现缺陷后需及时提交并跟踪修复情况,确保问题闭环。 5. **回归测试与验收确认** 缺陷修复后进行回归测试,验证问题是否彻底解决。最终由相关方确认测试结果,完成联测交付。 6. **联测总结与文档归档** 联测结束后进行总结,分析测试过程中的问题与经验,归档测试文档,为后续维护和升级提供依据。 #### 注意事项 - **接口一致性** 确保接口在开发与测试阶段保持一致性,避免因接口变更导致测试失败。如有变更,应及时同步文档并通知相关方。 - **数据隔离与安全性** 测试数据应与生产数据隔离,防止测试行为影响真实业务。同时需注意敏感数据的脱敏处理。 - **异常处理与容错机制** 需对接口异常情况进行测试,如超时、参数错误、服务不可用等,确保系统具备良好的容错能力。 - **日志与监控** 联测过程中应开启详细的日志记录,便于问题定位。建议引入监控工具,实时观察接口调用状态与性能。 - **沟通与协作机制** 联测涉及多方协作,需建立高效的沟通机制,及时处理测试中发现的问题,避免因沟通不畅影响进度。 - **自动化测试支持** 建议在联测阶段引入自动化测试工具,提升测试效率与覆盖率,尤其适用于回归测试。 #### 示例:接口联测测试用例(伪代码) ```python def test_api_response(): # 请求参数 payload = { "user_id": 12345, "token": "abc123xyz" } # 发起请求 response = api_client.post("/user/profile", data=payload) # 验证响应状态码 assert response.status_code == 200 # 验证返回数据结构 assert "username" in response.json() assert "email" in response.json() # 验证错误处理 invalid_payload = {"user_id": None} error_response = api_client.post("/user/profile", data=invalid_payload) assert error_response.status_code == 400 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值