首页 > 其他分享 >CF1875C Jellyfish and Green Apple

CF1875C Jellyfish and Green Apple

时间:2023-10-01 10:34:06浏览次数:39  
标签:CF1875C Apple int gcd Green 苹果 ans 人数 lld

思路

首先我们可以考虑把能分的都先分了,再选择去切剩下的苹果。

那么我们只需要考虑苹果数量少于人数的情况,每个人能分的苹果都必然少于目前的单个苹果,所以每个苹果都必须切一刀,那么答案数就会增加当前的数量,再把能分的都分了,重复这一过程,直到分完为止。这样去切一定是最优的。

那么,什么时候无解呢?

因为如果让苹果数和人数都同时除以某个数时,有没有解应该都一样。

所以可以考虑先除以苹果数和人数的 \(\gcd\),那么这时,如果人数不是 \(2^k\) 的话,意味着人数拥有某个非二质因子是苹果数没有的,那么无论苹果数怎么平分翻倍,也无法成为人数的倍数,此时无解。

这样的话,对于某个苹果数和人数,人数必然是 \(2^k\),那么最多进行 \(k\) 次上述操作即可,所以时间复杂度是 \(\log m\),完全可以接受。

AC code

#include<bits/stdc++.h>
using namespace std;
long long T,n,m,ans;
inline int lowbit(int x){return x&(-x);}//用于判断是否是二的幂
int main()
{
	scanf("%lld",&T);
	while(T--)
	{
		scanf("%lld%lld",&n,&m);
		if(lowbit(m/__gcd(n,m))!=m/__gcd(n,m)){printf("-1\n");continue;}//判断无解
		ans=0,n%=m;
		while(n) ans+=n,n*=2,n%=m;//模拟操作
		printf("%lld\n",ans);
	}
	return 0;
}

标签:CF1875C,Apple,int,gcd,Green,苹果,ans,人数,lld
From: https://www.cnblogs.com/One-JuRuo/p/17738631.html

相关文章

  • qemu源码分析(9)--Apple的学习笔记
    一, 前言本章节主要是再把GPIO创建的内容进行细化,搞明白gpio是否一个object,还和其它什么内容有关。二,分析 GPIOA,GPIOB等包括他们的寄存器都是object。每个对象都会再object_new的时候分配空间,比如GPIOA和GPIOB都有自己的空间。创建GPIOA,主要包括创建goio-peripheral类型及在conta......
  • Applescript成功实现imessage数据筛选,imessage蓝号检测,无痕检测手机号是否注册imess
    一、imessages数据检测的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写苹果MacOs......
  • Android GreenDao数据库使用
    GreenDao介绍GreenDao是一个开源的AndroidORM嵌入式关系数据库,通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),使用一个简单的面向对象的API来存储、更新、删除和查询Java对象。GreenDao特点●最佳性能(可能是Android中最快的ORM),基准测试也是开源的;●......
  • Qemu源码分析(8)—Apple的学习笔记
    一,前言本节主要看stm32f4_discovery_board_init_callback函数,里面大概看明白了,主要是2个部分,一个是SDL的初始化,另外一个是mcu中各个模块中寄存器对象的属性添加及设置属性值。二,分析Object*object_new(constchar*typename)才会调用class_init和ti->instance_init看到了set"hse......
  • MMU复习--Apple的学习笔记
    一,前言以前看过MMU,因为这是单片机OS中没有的,当时我记得理解的不是很清晰,包括MMU中哪部分是硬件的,哪部分是软件的都没有太搞清楚。由于看了一个自己写linux操作系统的视频,里面有介绍MMU,且演示了虚拟地址和物理地址的转换,此时我才深刻的理解了,所以在看qemu源码的内存管理前,我先复习......
  • MMU复习--Apple的学习笔记
    一,前言以前看过MMU,因为这是单片机OS中没有的,当时我记得理解的不是很清晰,包括MMU中哪部分是硬件的,哪部分是软件的都没有太搞清楚。由于看了一个自己写linux操作系统的视频,里面有介绍MMU,且演示了虚拟地址和物理地址的转换,此时我才深刻的理解了,所以在看qemu源码的内存管理前,我先复习下......
  • Linux的双链表复习—Apple的学习笔记
    一,前言   今天想把linux的双链表base代码拿来单片机用,于是看了下,结果有点混乱了。那么就画了个链表变化图,且做了实验进行巩固。二,分析链表头插方法主要是root然后添加t1,然后添加t2。那么链表的变化是RootRoot->t1Root->t2->t1如下图,R代表root头节点,1代表t1节点,2代表t2节点。......
  • Applescript脚本实现全自动无痕检测手机号码是否注册iMessage的原理
    一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制Macos/iphon......
  • Qemu源码分析(7)--Apple的学习笔记
    一,前言今天继续分析主要的api,包括了printlog和属性add及set,因为对于不同对象的操作,主要就是靠属性值设置及判断使用。二,源码分析A,关于qemu中自带的-d的log需要传入的参数主要通过-d然后传入的参数如下第2个成员,比如out_asmconstQEMULogItemqemu_log_items[]={{CPU_LOG_TB......
  • greenplum到oracle的dbi_link的配置、调试与测试
    为了解决greenplum到oracle的数据库的数据互联互通的问题,特提供的dbi_link做了研究与测试,dbi_link的基本原理是用Perl的DBI和相应数据库的DBD来访问异构数据库,实现数据的互访与数据传递,这次研究的目的是想解决oracle数据仓库到greenplum的数据传输的问题,这次的研究大概可以分为以......