首页 > 编程语言 >第二十二届SCU程序设计竞赛(Tencent CUP)

第二十二届SCU程序设计竞赛(Tencent CUP)

时间:2024-05-30 10:32:57浏览次数:35  
标签:ch CUP int void vis while Tencent SCU include

Problem A. 配对质数

此题事先把素数筛出来,由于从前往后可能会导致后面的数字无法配对,我们只需从后往前,把数x/2得到的两个数,即可完成配对操作

#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;

template <typename T>
inline void read(T &x)
{
    T f = 1;
    x = 0;
    char ch = getchar();
    while (0 == isdigit(ch))
    {
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (0 != isdigit(ch))
        x = (x << 1) + (x << 3) + ch - '0', ch = getchar();
    x *= f;
}
 
template <typename T>
inline void write(T x)
{
    if (x < 0)
    {
        x = ~(x - 1);
        putchar('-');
    }
    if (x > 9)
        write(x / 10);
    putchar(x % 10 + '0');
}

int n;
int primes[4100100],cnt,vis[2000100],a[2000100],b[2000100],q;
bool st[4100100];
void init()
{
	st[1]=true;
	for(int i=2;i<=4100000;i++)
	{
		if(!st[i]) primes[++cnt]=i;
		for(int j=1;primes[j]*i<=4100000;j++) 
		{
			st[primes[j]*i]=true;
			if(i%primes[j]==0) break;
		}
	}
}
void solve()
{
	int flag=1;
//	vpii vec;
	scanf("%d",&n);
	for(int i=1;i<=2*n;i++)
	{
		vis[i]=0;
	}
	int p=lower_bound(primes+1,primes+cnt+1,4*n-1)-primes;
	q=1;
	for(int i=2*n;i>=1;i--)
	{
		if(vis[i]) continue;
		int j=primes[p]-i;
		while(j<1||j>=i||vis[j])
		{
			p--;
			if(p<1) break;
			j=primes[p]-i;
		}
		if(p<1)
		{
			flag=0;
			break;
		}
		a[q]=i;
		b[q++]=j;
		vis[i]=vis[j]=1;
	}
	if(!flag) printf("-1\n");
	else
	{
		for(int i=1;i<=n;i++)
		{
			printf("%d %d\n",a[i],b[i]);
		}
	}
}
int main()
{
	init();
	int _=1;
	scanf("%d",&_);
	while(_--)
	{
		solve();
	}
	return 0;
}

 

标签:ch,CUP,int,void,vis,while,Tencent,SCU,include
From: https://www.cnblogs.com/Additionlly/p/18221879

相关文章

  • [Paper Reading] FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Cha
    FlashOcc:FastandMemory-EfficientOccupancyPredictionviaChannel-to-HeightPluginlink时间:23.11机构:houmo.ai后摩智能TL;DR当时比较流行的OCC方案内存与计算复杂度较高,本文提出一种称为FlashOcc的方法,仅使用2D卷积将特征由二维空间lift到3D空间。MethodImageEn......
  • BEV与Occupancy怎样助力自动驾驶落地?
    自动驾驶领域中,什么是BEV?什么是Occupancy?BEV是Bird'sEyeView的缩写,意为鸟瞰视图。在自动驾驶领域,BEV是指从车辆上方俯瞰的场景视图。BEV图像可以提供车辆周围环境的完整视图,包括车辆前方、后方、两侧和顶部。BEV图像可以通过多种方式生成,包括:使用激光雷达:激光雷达可......
  • ubuntu24.04 安装 cupy
    概述我的cuda版本是12x的,对齐版本,故cupy也是12x版本,12代表cuda大的版本号,x代表小的版本号可以不同,用一个变量x代表。cupy依赖CUDAToolkit12.x,在ubuntu24.04下,它的名字是:nvidia-cuda-toolkit,使用aptshow查看一下软件的版本:(torch)logic@PC:~$aptsh......
  • [Paper Reading] Scene as Occupancy
    SceneasOccupancylink时间:23.06机构:ShanghaiAILab&&SenseTime&&CUHKTL;DR提出使用3DOccupancy来表征3D物理场景,相对于3D检测框,3DOcc可提供更细粒度细节。提出OccNet一种多目级连的时序模型,运动规划碰撞率降低15%~58%。创新性:bethefirsttoinvestigateoccupancy......
  • 如何确保环境中已经安装了支持GPU加速的库(如CuPy、TensorFlow-GPU或PyTorch)
    要确保环境中已经安装了支持GPU加速的库(如CuPy、TensorFlow-GPU或PyTorch),你可以遵循以下步骤进行检查和安装:1.检查CUDA和cuDNN首先,确保你的系统上已经安装了NVIDIA的CUDAToolkit和cuDNN库,���为这些库是GPU���速深度学习框架(如TensorFlow和PyTorch)运行的基础。你可以访问NVIDIA的官方......
  • 信息融合是Occupancy任务必要的吗?工业界是怎么做的?
    前言 最近OCC的综述很多,这两天arxiv上又挂出来一篇,从信息融合的角度全面回顾了占用网络的相关工作,值得一看!本文转载自自动驾驶之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV方向的准......
  • Scurm冲刺第七天
    Scurm冲刺第七天1.站立式会议内容昨日已完成任务今日计划完成任务学习前后端接口设计与交互实现,前端界面合理跳转功能实现的相关知识前后端接口设计与交互实现,前端界面合理跳转功能实现研讨前端UI设计代码编写(基于用户界面对管理员界面的设计)的解决方法前端U......
  • Scurm冲刺第六天
    Scurm冲刺第六天1.站立式会议内容昨日已完成任务今日计划完成任务前端UI设计代码编写(购物车页面,订单页面,订单详情页,搜索后商品展示页)前后端接口设计与交互实现,前端界面合理跳转功能实现后端管理员模块功能实现(商品信息管理功能实现,订单管理实现)前端UI设计代码编......
  • #Scurm冲刺第五天
    Scurm冲刺第五天1.站立式会议内容昨日已完成任务今日计划完成任务前端UI设计代码编写(收藏页面,商品详情页,个人中心页)前端UI设计代码编写(购物车页面,订单页面,订单详情页,搜索后商品展示页),前端界面合理跳转功能实现后端管理员模块功能实现(登录注册功能,用户管理功能,个......
  • Scurm冲刺第四天
    Scurm冲刺第四天1.站立式会议内容昨日已完成任务今日计划完成任务首页代码设计实现前端UI设计代码编写(收藏页面,商品详情页,个人中心页)后端用户功能模块的购物车,收藏和个人中心操作功能后端管理员模块功能实现(登录注册功能,用户管理功能,个人中心操作)跟进前后端......