F. Vasilije Loves Number Theory

news2024/9/27 17:35:50

Problem - F - Codeforces

思路:分析一下题意,对于第一种操作来说,每次乘以x,那么n=n*x,然后问是否存在一个a使得gcd(n,a)=1并且n*a的约数个数等于n,有最大公约数等于1我们能够知道其实这两个数是互质的,所以d(n)*d(a)=d(n*a),那么就是要d(a)=n/d(n),所以n%d(n)一定要等于零,同时又因为当取模等于零时我们发现一定可以构造除一种方案,我们先选择一个与n互质的数x,然后让a=x^t,此时a共有(t+1)个约数,所以我们只需要让(t+1)=n/d(n)就能够构造出来,所以现在的问题变成了,我们能够判断n%d(n)等于0,我们知道一个因数个数的公式,就是所有质因数的个数加一的累乘,那么我们只需要维护n的所有质因数的个数即可,同时n并不能够直接乘以x,因为可能会乘的很大,所以我们在求出来d(n)之后,可以看看n与所有的x能否把d(n)消完,如果能消则代表可以

// Problem: F. Vasilije Loves Number Theory
// Contest: Codeforces - Codeforces Round 900 (Div. 3)
// URL: https://codeforces.com/contest/1878/problem/F
// Memory Limit: 256 MB
// Time Limit: 2000 ms

#include<bits/stdc++.h>
#include<sstream>
#include<cassert>
#define fi first
#define se second
#define i128 __int128
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> PII;
const double eps=1e-7;
const int N=5e5+7 ,M=5e5+7, INF=0x3f3f3f3f,mod=1e9+7,mod1=998244353;
const long long int llINF=0x3f3f3f3f3f3f3f3f;
inline ll read() {ll x=0,f=1;char c=getchar();while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=(ll)x*10+c-'0';c=getchar();} return x*f;}
inline void write(ll x) {if(x < 0) {putchar('-'); x = -x;}if(x >= 10) write(x / 10);putchar(x % 10 + '0');}
inline void write(ll x,char ch) {write(x);putchar(ch);}
void stin() {freopen("in_put.txt","r",stdin);freopen("my_out_put.txt","w",stdout);}
bool cmp0(int a,int b) {return a>b;}
template<typename T> T gcd(T a,T b) {return b==0?a:gcd(b,a%b);}
template<typename T> T lcm(T a,T b) {return a*b/gcd(a,b);}
void hack() {printf("\n----------------------------------\n");}

int T,hackT;
ll n,m,k;
int pr[N],ttcnt;
bool st[N];
int cnt[N];
map<int,int> tcnt;

void init() {
	for(int i=2;i<=1000;i++) {
		if(!st[i]) pr[ttcnt++]=i;
		for(int j=0;pr[j]<=1000/i;j++) {
			st[pr[j]*i]=true;
			if(i%pr[j]==0) break;
		}
	}
}

void t_init(int x) {
	tcnt.clear();
	for(int i=0;i<ttcnt;i++) cnt[pr[i]]=0;
	for(int j=0;j<ttcnt;j++) {
		if(pr[j]>x) break;
		while(x%pr[j]==0) {
			cnt[pr[j]]++;
			x/=pr[j];
		}
	}
	if(x!=1) tcnt[x]++;
}

int get() {
	int res=1;
	for(int i=0;i<ttcnt;i++) res=res*(cnt[pr[i]]+1);
	for(auto &it:tcnt) res=res*(it.se+1);
	return res;
}

void change(int x,int &d) {
	int s=gcd(x,d);
	d/=s;
}

bool check(vector<int> &temp,int d) {
	change(n,d);
	for(int i=0;i<temp.size();i++) change(temp[i],d);
	
	if(d==1) return true;
	else return false;
}

void solve() {
	n=read();
	int q=read();
	
	t_init(n);
	vector<int> temp;
	while(q--) {
		int op=read();
		
		if(op==1) {
			int x=read();
			temp.push_back(x);
			for(int j=0;j<ttcnt;j++) {
				if(pr[j]>x) break;
				while(x%pr[j]==0) {
					cnt[pr[j]]++;
					x/=pr[j];
				}
			}
			if(x!=1) tcnt[x]++;
			
			if(check(temp,get())) printf("YES\n");
			else printf("NO\n");
		}else if(op==2) {
			t_init(n);
			temp.clear();
		}
	}
}   

int main() {
    init();
    // stin();
	// ios::sync_with_stdio(false); 

    scanf("%d",&T);
    // T=1; 
    while(T--) hackT++,solve();
    
    return 0;       
}          

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1078609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

圆满完成重保网络防护行动,持安科技获西南兵工致信感谢

近日&#xff0c;因积极协助西南兵工有限责任公司开展重保网络防护行动中&#xff0c;提供强大零信任网络安全产品和专业技术力量配合&#xff0c;持安科技收到了来自西南兵工有限责任公司的致信感谢。 持安为西南兵工提供的应用层零信任解决方案&#xff0c;是持安科充分吸取了…

Hibiki Run 市场火爆,“Listen to Earn”赛道的现象级应用?

在 9 月 18 日&#xff0c;以“Listen to Earn”为特点的 Web3 数字音乐类项目 Hibiki Run&#xff0c;在包括 DAOStarter、Spores Network、BitMart 在内的 三个平台&#xff0c;开启了实用通证 $HUT 的 IDO / IEO 活动。据悉&#xff0c;在本轮认购开启后的短时间内所有平台均…

Python 图形化界面基础篇:更改字体、颜色和样式

Python 图形化界面基础篇&#xff1a;更改字体、颜色和样式 引言 Tkinter 库简介步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a;创建文本标签步骤4&#xff1a;更改字体步骤5&#xff1a;更改颜色步骤6&#xff1a;更改样式 完整示例…

数字图像处理实验记录一(图像基本灰度变换)

文章目录 基础知识图像是什么样的&#xff1f;1&#xff0c;空间分辨率&#xff0c;灰度分辨率2&#xff0c;灰度图和彩色图的区别3&#xff0c;什么是灰度直方图&#xff1f; 实验要求1&#xff0c;按照灰度变换曲线对图像进行灰度变换2&#xff0c;读入一幅图像&#xff0c;分…

使用python查找指定文件夹下所有xml文件中带有指定字符的xml文件

文件夹目录如下&#xff08;需要递归删除文件夹下的.DS_Store文件&#xff09;&#xff1a; labels文件夹下面是xml文件&#xff1a; import os import os.pathpath "name/labels" files os.listdir(path) # 得到文件夹下所有文件名称 s []for xmlFile in files:…

成为领导心腹:新入行的测试人员,如何快速提升自己的影响力?

作为一名新入行的测试人员&#xff0c;如何提高自己在工作中的影响力呢&#xff1f;可能有人会问了&#xff1a;“测试人员不是只要安分守己的做好自己的测试工作不就行了吗&#xff1f;又不是当管理者&#xff0c;为什么要提高影响力呢&#xff1f;”说实话&#xff0c;我刚入…

“比特币震荡中的秘密信号?技术分析揭示最近走势的关键!“

技术分析 比特币维持在 27,000 美元的支撑位&#xff0c;甚至在此价格水平上形成了新的更高低点。这标志着一个非常有利的发展&#xff0c;表明每小时和每日时间框架上的看涨趋势。 然而&#xff0c;当考虑每周和每月的观点时&#xff0c;我们仍然遇到阻力&#xff0c;这可以…

【开源系统开发框架】:一招高效实现办公流程化发展!

实现高效化办公是很多职场人的愿望。毕竟这能提高企业的办公效率&#xff0c;高效利用内部资源&#xff0c;创造顺畅无阻的流程化办公&#xff0c;因此也成为很多企业的追求。什么样的平台软件可以助力实现&#xff1f;低代码技术平台的优势多&#xff0c;轻量级、易操作、简单…

陀螺仪传感器解读-Gyro Acce,1

加速度计和陀螺仪的简介 https://www.cnblogs.com/zdxgloomy/articles/4171937.html 加速度计和陀螺仪的使用指南 &#xff0c;代码部分 https://www.amobbs.com/forum.php?modviewthread&tid5510930&_dsign972b156c 模拟加速度计: 1. Accelerometer prinicple. 加…

Python 图形化界面基础篇:将应用程序打包为可执行文件

Python 图形化界面基础篇&#xff1a;将应用程序打包为可执行文件 引言 PyInstaller 简介步骤1&#xff1a;安装 PyInstaller 步骤2&#xff1a;创建 Python GUI 应用程序步骤3&#xff1a;使用 PyInstaller 打包应用程序 完整示例代码解释结论 引言 在开发完一个图形用户界面…

Docker 基础

一、快速入门&#xff1a; 1.Docker的安装 安装docker引擎 官方网址&#xff1a;Install Docker Engine on CentOS | Docker Docs 朋友们&#xff0c;有坑&#xff0c;千万不要用官方的仓库&#xff0c;就是下面这一步 记得用国内的镜像源&#xff1a; yum-config-manager …

Sectigo有便宜的泛域名SSL证书吗

Sectigo是国际性的CA认证机构&#xff0c;在多个国家设有分支机构和办事处&#xff0c;为了提高SSL证书的审核速度&#xff0c;Sectigo成立了亚太审核中心&#xff0c;快速审核国内的SSL证书申请&#xff0c;为客户提供全方位的数字证书和网络安全解决方案。Sectigo的使命是通过…

纸巾餐盒经营配送小程序商城的作用是什么

对餐饮行业来说&#xff0c;纸巾餐盒消耗非常快&#xff0c;需求比较旺盛&#xff0c;对普通家庭/食堂来讲也有较高的需求&#xff0c;可以说是必需品。也因此&#xff0c;市场中纸巾餐盒厂家及经销商不少&#xff1a; 1、拓客难、品牌传播难 纸巾餐盒可以零售也可以批发&…

linux安装java环境(jdk安装,java安装,通过安装包方式)

1&#xff1a;官网下载jdk-8u381-linux-x64.tar.gz安装包https://www.oracle.com/java/technologies/downloads/#java8 2&#xff1a;复制安装包到/opt目录下&#xff0c;使用命令解压安装包 tar -xvf jdk-8u341-linux-x64.tar.gz3&#xff1a;要在 /usr 目录下创建一个软链接…

@MultipartConfig注解

前言&#xff1a; 在学习Javaweb的Servlet文件上传和下载的过程中&#xff0c;我们会遇到一个特殊的注解---MultipartConfig。 MultipartConfig的适用情况&#xff1a; 1.文件上传: 当您的应用程序需要接收用户上传的文件时&#xff0c;可以在相应的 Servlet 上使用 Multipart…

一种超轻量级神经网络加速器实现

一 目标 针对资源受限&#xff0c;SWaP敏感的边缘计算应用场景&#xff0c;探索稳健而高效的计算架构&#xff0c;算法和应用。 并完成超轻量级神经网络加速器设计和验证。 1、实时性能&#xff1a;30~50FPS 2、超低功耗&#xff1a;mW级别 3、资源受限&#xff1a;包括…

学习记忆——数学篇——案例——代数——方程——一元二次方程

重点记忆法 a x 2 b x c 0 ax^2bxc0 ax2bxc0 整体可以由&#xff1a; 根 ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 求根公式 x 1 , 2 x_{1,2} x1,2​ − b △ 2 a \frac{-b\sqrt{△}}{2a} 2a−b△ ​​ ⟹ \Longrightarrow ⟹ 韦达定理 ⟹ \Longrightarr…

Acwing.4742 电(动态规划)

题目 某城市有 N 个电力节点&#xff0c;编号 1∼N。 这些电力节点形成的电力网络&#xff0c;可以看作一个 N 个节点 N−1 条边的连通图。 每个电力节点都有一个固定的电容&#xff0c;其中第 i 个节点的电容为 Ai。 现在&#xff0c;可以选择其中一个节点进行供电&#x…

婚礼避坑指南(tips分享)

1️⃣自己买婚纱很可能比租的更省钱&#xff0c;更时髦。我是先去婚纱店看&#xff0c;玲琅满目的婚纱让我看花了眼&#xff0c;试穿了几件重工的婚纱感觉并不是自己喜欢的款式&#xff0c;穿着也不舒服&#xff0c;而且租金都要几千。自己在京东上400买的反倒特别满意。 2️…

apipost测试工具的基本使用

目录 什么是 API Post&#xff1f; 步骤1&#xff1a;下载 步骤2&#xff1a;登录 步骤3&#xff1a;新建目录 步骤4&#xff1a;新建接口 步骤5&#xff1a;参数 步骤6&#xff1a;参数的导入导出 一.先找一个有参数的接口进行测试 二.新建一个接口 步骤7&#xff1…