AGC003D Anticube

【Python_PySide6学习笔记(二十四)】菜单栏QMenuBar类的基本用法 此篇文章中介绍 PySide6 中 QMenuBar 类的基本用法,包括"创建菜单栏"、"创建一级菜单"、"创建二级菜单"等,会持续更新,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。 阅读详情

传送门

题意:
有一个长度为N的数组S,要求从S中选择一些数,使得在你选择出的这些数中,任意两个数的乘积不是一个立方数。注意:S中的数可能有重复。
求最多能从S中选择多少个数满足要求。

题解:
对每一个数 x = p 1 a 1 p 2 a 2 . . . p k a k x=p_1^{a_1}p_2^{a_2}...p_k^{a_k} x=p1a1​​p2a2​​...pkak​​,我们可以求出 x ′ = p 1 a 1 % 3 p 2 a 2 % 3 . . . p k a k % 3 x'=p_1^{a_1\%3}p_2^{a_2\%3}...p_k^{a_k\%3} x′=p1a1​%3​p2a2​%3​...pkak​%3​,再顺便求出这个数乘以多少会是一个立方数。为陈述方便,就称作 x ′ ′ x'' x′′吧。
可以枚举 x 3 \sqrt[3]{x} 3x ​范围内的质数,然后求出上述值。如果剩下的值>1,有两种情况:它是某个质数的平方;它是一个质数。然后就可以用map存出现次数,最后求答案时加上除立方数外,x’和x’'两种冲突情况的答案的最大值即可。如果有立方数,答案加一。

代码:

#include<cstdio>
#include<map>
#include<algorithm>
#define N 100000
#define LL long long
#define mod 1000000007
using namespace std;
typedef pair<LL,LL> PLL;
typedef map<LL,int>::iterator miter;
int n,p[N+5],pcnt,ans,cnt0;
bool vis[N+5];
map<LL,int> cnt,calc;
map<LL,LL> iv;
void init()
{
	for(int i=2;i<=N;i++)
	{
		if(!vis[i]) p[++pcnt]=i,calc[1ll*i*i]=i;
		for(int j=1;i*p[j]<=N;j++)
		{
			vis[i*p[j]]=true;
			if(i%p[j]==0) break;
		}
	}
}
int main()
{
	scanf("%d",&n);
	init();
	for(int i=1;i<=n;i++)
	{
		LL a,tmp,h1=1,inv=1;
		scanf("%lld",&a); tmp=a;
		for(int j=1;j<=pcnt&&1ll*p[j]*p[j]*p[j]<=a;j++)
			if(tmp%p[j]==0)
			{
				int xcnt=0;
				while(tmp%p[j]==0) tmp/=p[j],xcnt++;
				xcnt%=3;
				for(int i=1;i<=xcnt;i++) h1*=1ll*p[j];
				for(int i=1;i<=(3-xcnt)%3;i++) inv*=1ll*p[j];
			}
		if(tmp>1)
		{ 
			h1*=1ll*tmp;
			miter it=calc.find(h1);
			if(it!=calc.end()) inv*=it->second;
			else inv*=1ll*tmp*tmp;
		}
		if(h1==1) { cnt0=1; continue; }
		cnt[h1]++;
		iv[h1]=inv,iv[inv]=h1;
	}
	for(miter it=cnt.begin();it!=cnt.end();it++)
		if(cnt.find(iv[it->first])==cnt.end()) ans+=it->second;
		else
		{
			ans+=max(it->second,cnt[iv[it->first]]);
			it->second=cnt[iv[it->first]]=0; 
		}
	printf("%d\n",ans+cnt0);
}
基于ENVI完成影像的去云操作以及后续处理 利用ENVI完成重采样影像的去云操作 由于SNAP重采样之后的影像是分波段保存的,ENVI的波段运算工具一次也只能输出一个波段,所以去云的操作分波段进行,原理是掩膜法 下面是打开所有波段后的界面 去云的依据是以quality_scene_classification栅格文件为基础,该文件是哨兵2数据自带的场景质量分类图,包含12个级别,可以通过SNAP软件查看,如下图所示: 对于去云操作而言,我们只需要DARK_FEATURE_SHADOW(地形等),CLOUD_SHADOW(云阴影)、CL 阅读详情

相关推荐

手把手教你玩转Infoseek舆情监测系统:从数据爬取到智能分析实战

别只会监测品牌名!一个有效的监测体系应该包括:// 完整的监测关键词策略brand: ["品牌名", "产品名", "缩写"],executives: ["CEO姓名", "高管姓名"],campaign: ["当前营销活动名称"],competitors: ["竞品A", "竞品B"],industry: ["行业通用关键词"],// 别忘了常见拼写错误和黑称defensive: ["常见的错误拼写", "用户起的黑称"]产品优化:从用户吐槽中发现改进点市场洞察。

2501_93332955的博客 759

【agc003D】Anticube

Portal --> agc003D Description   给你\(n\)个数,要从里面选出最多的数满足这些选出来的数中任意两个数的乘积都不是立方数    Solution   (为什么感觉最近这种解法比较直接的题反而容易没有思路==)   比较容易想到的是分解质因数(然而。。这题直接分解质因数直接爆炸了==),不然你连判断两个数的乘积是不是立方数都很难搞。。。   那。。假装我们找到...

weixin_30853329的博客 147

UE4免费资产库新玩法:Quixel Bridge插件安装与Megascans资源导入全攻略

本文详细介绍了如何在UE4中安装Quixel Bridge插件并导入Megascans资源,帮助开发者快速获取高质量3D资产。通过分步教程和实用技巧,提升游戏或影视场景的制作效率,特别适合需要真实感环境的项目。

weixin_27729671的博客 368

质因数分解上的势能分析:AGC003D

对于此类题,很容易分析出就是靠这类类似大大小小的性质类分析,关键点是要先分类讨论,考虑此时行不行,能不能在细分,细分下去是否能区分。二分图点对的性质很明显,但很容易忽略它在接下来分析中的作用。此时剩下最多剩下2个质数,其实分类讨论一下即可。但如何判断剩下的属于。,所以很明显类似根号类的题,进行。题目问是否存在立方,值域范围。考虑回到题目,啥时候有贡献。,这个范围内显然不存在。,所以不可能形成点对。

zhangtingxiqwq的博客 226

【精品5万字图文详解】特征平台建设方案与最佳实践

关键词:特征工程、特征平台、特征存储、特征服务、机器学习、数据工程摘要:本文全面介绍了特征平台的建设方案与最佳实践,从特征工程的基本概念出发,深入剖析了特征平台的核心组件、架构设计和实现方法。文章通过生动的类比和实例,使读者能够轻松理解特征工程的重要性及特征平台如何解决企业在机器学习过程中面临的数据管理挑战。同时,详细探讨了主流开源特征平台的对比分析、系统设计要点、实际落地案例以及未来发展趋势,为企业构建高效特征平台提供了全面的指导和参考。想象一下,小明是一位热爱烹饪的小学生。有一天,他想做一道美味的菜肴送

AI天才研究院 954

PMSM控制系列文章进阶-8.电流、角度采样及其同步

摘要:本文分析了高低压电机在电流和角度采样中的不同方案选择。高压电机采用霍尔传感器和旋变进行隔离采样,低压电机则使用shunt电阻和磁编码器以降低成本。重点讨论了采样时间补偿问题:电流采样需与PWM周期同步,角度采样需考虑传感器延迟;通过park变换和反park变换时需补偿采样与发波的时间差,提出了通过测试母线电流或Ud变化来验证补偿时间准确性的方法。文中还介绍了对传感器信号进行软解码处理的方法,包括消除直流偏置、增益误差和正交误差等参数的自学习过程。

weixin_41343701的博客 613

[AGC003D] Anticube

Problem StatementSnuke got positive integers $s_1,...,s_N$ from his mother, as a birthday present. There may be duplicate elements. He will circle some of these $N$ integers. Since he dislikes cubic ...

mekoszc的博客 98

如何离线环境下安装Dify插件 (可提供远程指导协助)

离线环境下安装Dify插件

litlit023的专栏 8101

AGC023D - Go Home

AGC023D - Go Home 题目描述 Solution 我们首先把这些人分成在sss左边和在sss右边两类,考虑最左边的一群人AAA和最右边的一群人BBB,这两群人中必然有其中一群人是最后到家的。而是否最后到家取决于这两群人的人数(因为倘若只剩下两群人,一个要往左,一个要往右,必然会往人多的一个方向去)。 设两群人的人数分别为a,ba,ba,b,且a<ba<ba<b。 则...

xmr_pursue_dreams的博客 443

【Bluetooth蓝牙开发】九、BLE协议之GATT

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 4762

2026华为OD机考双机位C卷++ 双机位B卷 + 双机位A卷 + 2025C/B/A卷+ 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

2025华为OD机考双机位C卷++ 双机位B卷 + 双机位A卷 + 2025C/B/A卷+ 往年真题 - 题库目录分值说明 + 考点说明+在线OJ

算法大师! 5万+

[AGC003D]Anticube

我连这个都不会做,我还是去死吧;也免得拉低全机房的平均水平。

七代目鸽影 714

【AI Agent教程】各种Agent开发框架都是如何实现ReAct思想的?深入源码学习一下

驱动大模型有很多种方式,例如纯Prompt方式、思维链方式、ReAct方式等。ReAct 方式是 AI Agent 最常用的实现思路之一,它强调在执行任务时结合推理(Reasoning)和行动(Acting)两个方面,使得Agent能够在复杂和动态的环境中更有效地工作。

同学小张的博客 6396

agc003_d Anticube

https://atcoder.jp/contests/agc003/tasks/agc003_d 这题关键之处是想到3次方对应的3次方是唯一的,也就是说吧一个数质因数分解以后,吧每个因数的幂次都%3然后得到一个新数,那么这个新数只会和另一个确定的新数乘起来是三次幂 然后x^3<=10^20,x<=10^(20/3),那么对于每个数我们只要暴力枚举10^(10/3)内的质数就行了,筛完以后如果还剩,对于10^(10/3)到1e5中的质数,要么是x^2,要么是x,那么只要sqrt一下看是不是平

binarycopycode 216

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[agc003d]Anticube

前言简单贪心,最难的部分居然是分解质因数。题目大意从一个10^10的数列里选出最多的数,使两两乘积不为立方数。做法把每个数最简表示,即每个质因数的指数都模3。 还要求出这个最简数的补数,也就是满足最简的与其乘积为立方数的数。 对于数列中一个数集团和它的补数集团,贪心的选择较大的那个。 如果一个数和其补数相等,则只能选1个。 重点是求最简数以及补数。 枚举1010310^{\frac{10}

不来也不去的一只失忆蝴蝶 1569

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

AGC003 D Anticube

题意 有n个数,从中选出m个数,使得这m个数两两相乘的乘积都不是立方数 n&amp;amp;lt;=1e5 题解 这种题很大部分都需要质因数分解… 然而质因数分解就T了… 我们暂且不管,考虑一下质因数分解后的做法 我们把所有的指数%3,这样就组合成了一个新数,然后用map把相同的归成一类。 我们先把1特判掉,然后所有的矛盾关系应该都是两两的,我们比较矛盾的两个的大小,取数目较大的那一个加入答案 这样就在O(nlo...

LazyCrazyCat的博客 343

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Atcoder - AGC003D】Anticube

@Anticube@@Problem Statement@@Translation@@Solution@@Code@@End@ @Problem Statement@ Snuke got positive integers s1,…,sN from his mother, as a birthday present. There may be duplicate elements. He wil...

Tiw的博客小家~ 560

AGC003 D Anticube 数论 贪心

题目链接 题意: 给你n个数,求一个最大的集合,使得集合内的数两两相乘都不是完全立方数,输出集合大小。n&amp;amp;lt;=1e5,ai&amp;amp;lt;=1e10n&amp;amp;lt;=1e5,a_i&amp;amp;lt;=1e10n&amp;lt;=1e5,ai​&amp;lt;=1e10 题解: 这种题经常会需要从质因数角度考虑。我们不难想到,如果一个数是完全立方数的话,那么它的每一个质因子的次数应该都是3的倍数。有一个...

forever_shi的博客 350

Agc003_D AntiCube

传送门 题目大意 给定$N$个数,求一个最大的子集,使得任意两两的乘积不是一个完全立方数。 $n\leq 10^5 A_i\leq 10^{10}$ 题解 考虑两两乘积为$x^3$,由于$x^3\leq 10^{20}$,那么$x\leq 10^{\frac{20}{3}}$,那么$x$最多出现一个超过$10^{\frac{10}{3}}$的质因子,且这一质因子不会超过$10^{\...

weixin_30500473的博客 151

Atcoder AGC003D :Anticube(Pollard-Rho)

传送门 题解: 注意到不能同时选的数是一一对应的。 那么直接Pollard-Rho即可。 #include &lt;bits/stdc++.h&gt; #include &lt;tr1/unordered_map&gt; using namespace std; typedef long long LL; typedef __int128 IL; typedef map &lt;LL,...

DZYO的博客 504

AtCoder Grand Contest 003 D - Anticube

#include #define N 100100 using namespace std; typedef long long LL; int prime[2200],len; int n,m,ans; LL l[N],r[N]; map ma; int main(){ for(int i=2;i<2200;i++){ int fla=1; for(int j=2;j<i;j++)

流水的博客 534

Anticube

  5590: Anticube 时间限制: 5 Sec  内存限制: 256 MB 提交: 33  解决: 5 [提交][状态][讨论版][命题人:admin] 题目描述 Snuke got positive integers s1,…,sN from his mother, as a birthday present. There may be duplicate elements. ...

知与谁i的博客 336

AtCoder Grand Contest 003 D - Anticube 贪心

题意 给出n个数a[1..n],要求选出最多的数使得其中任意两个数的乘积不是完全立方数。 n&lt;=100000,a[i]&lt;=10^10 分析 我们把一个数质因数分解后的每个指数都模3,不难发现每一个数都唯一对应一个和它相乘为完全立方数的数,设为其补数。然后在每个数和其补数中选一个较大的加入答案即可。 现在问题在于怎么分解把每个数化简并得到其补数。 不难注意到一个数的立方因...

beginend 524

[agc002f]Leftmost Ball

前言小清新计数题。题意n种颜色每种颜色有k个球(这n种颜色不含白色),排成一行,把每种颜色第一个球涂成白色。 问颜色序列方案数。DP要求任意后缀0的个数不比颜色种类数多。 不妨设dp表示f[i,j]已经用了i种颜色,放了i-j个0。 每次可以在最前面放0。 也可以新加一种颜色,为了不计重最前面的要是这种新颜色。 最后还要乘上颜色的阶乘。#include<cstdio> #include<a

不来也不去的一只失忆蝴蝶 788

【Atcoder】AGC003 C-F简要题解

贪心

远行客 352

Anticube AtCoder - 2004 乱搞

题意:给定序列,要求在序列中找出最多的数,使得其中任意两个数相乘不是立方数。思路:看了大牛的思路,%%%%%%,首先将每个数的因子的指数对三取模,发现同时也求出了当前数与之相乘为完全立方数的最简数,这里称其为补数,这里利用map记录一下补数是否出现,最后取当前数与补数的最大值(乱搞一通,智商-=inf)点击打开链接#include&lt;bits/stdc++.h&gt; #define debu...

qq_41231363的博客 253
上一篇: AGC002D Stamp Rally
下一篇: AGC010D Decrementing
dogeding
博客等级 码龄10年 31粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值