test·A·Summary

C++程序计算序列前缀和后缀乘积的平均值
这是一个C++程序,用于读取整数序列的长度和元素,计算序列的前缀和后缀乘积,并求其平均值。程序使用long long类型和double类型处理大整数和浮点数,通过预处理宏进行输入输出文件的切换。
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
void read(int& x)
{
	x = 0;
	char c = getchar();
	bool flag = 0;
	while(c<'0'||c>'9')
	{
		if(c=='-')flag=1;
		c = getchar();
	}
	while(c>='0'&&c<='9')
	{
		x = x*10+c-'0';
		c =getchar();
	}
	if(flag)x = -x;
}
#define maxn 1001000
#define eps 0.000001
typedef long long ll;
double ans = 0.0;
int n,p;
int a[maxn];
int pre[maxn],suf[maxn];
double tmp;
int main()
{
#define AC
#ifdef AC
	freopen("nsq.in","r",stdin);
	freopen("nsq.out","w",stdout);
#endif
	read(n),read(p);
	for(int i=1;i<=n;i++)read(a[i]);
	pre[0] = 1,suf[n+1]=1;
	for(int i=1;i<=n;i++)pre[i] = (ll)pre[i-1]*a[i]%p;
	for(int i=n;i
# 优先级名称映射 priority_name_map = { 'other_priority': '其它优先级', 'NONE': '无优先级', 'summary': '总计' } # 初始化结果列表 b = [] # 确定测试类型的处理顺序 test_types_order = sorted( {test_type for project in a.values() for test_type in project}, key=lambda x: (not x.startswith('security_'), x) ) # 动态获取项目顺序 projects_order = list(a.keys()) handled_test_types = set() handled_projects = set() # 用于跟踪已处理的项目 for test_type in test_types_order: # 标记该测试类型是否已处理过 is_test_type_handled = test_type in handled_test_types for project in projects_order: if project not in a or test_type not in a[project]: continue test_data = a[project][test_type] # 检查项目是否已经处理过 project_handled = project in handled_projects # 收集优先级项:P1, P2, P3, 其他 priorities = [p for p in ['P1', 'P2', 'P3'] if p in test_data] others = [k for k in test_data if k not in priorities + ['summary']] group_rows = [] for key in priorities + others: data = test_data[key] # 获取优先级显示名称 priority_name = priority_name_map.get(key, key) # 生成行 if not is_test_type_handled and not group_rows: # 首行:填写测试类型和项目 row = [ '*', test_type, project if not project_handled else '', priority_name, data['total_api'], data['run_api'], data['total_case'], data['run_case'] ] else: row = [ '*', '', project if not project_handled else '', priority_name, data['total_api'], data['run_api'], data['total_case'], data['run_case'] ] group_rows.append(row) # 处理总计行 summary = test_data['summary'] summary_row = [ '*', '', project if not project_handled else '', '总计', summary['total_api'], summary['run_api'], summary['total_case'], summary['run_case'] ] # 如果是该测试类型的第一个项目的首行,更新测试类型和项目 if not is_test_type_handled and not group_rows: summary_row[1] = test_type summary_row[2] = project group_rows.append(summary_row) b.extend(group_rows) # 标记测试类型已处理 handled_test_types.add(test_type) # 标记项目已处理 handled_projects.add(project) 进行修改,当第二次出现相同project名称(如security_over_permit、function)时,置空 '' 处理
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真·skysys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值