首页 > 其他分享 >abc222G - 222

abc222G - 222

时间:2023-09-28 15:00:32浏览次数:27  
标签:10 那么 int ll abc222G include 222

G - 222

如果知道阶的相关知识,那么就是道板题。
一个显然的结论是k最多只能有一个2的因子,同时不能有5的因子,直接特判即可

\[k| \frac{10^x -1}{9} \]

那么剩余的情况我们可以保证(9p,10)=1,根据欧拉定理,在这种情况下一定有解。
那么问题转化为求最小的正整数x使得

\[9k| {10^x -1} \]

就是求阶。

而原本的bsgs求出来的x的范围是在[0,9k-1],我们不希望得到0的解,网上找了一下居然没找到求最小的正整数解。
那么自己动手。

原来我们的hash保存的是最大值,那么最大值有可能减了之后等于0,那么我们在存一个次小值即可。

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<unordered_map>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))

using namespace std;
typedef double db;
typedef long long ll;
const int N = 2e5 + 5;
const ll inf = 1ll << 60;
const ll mo = 998244353;
ll n;
ll bsgs(ll a, ll b, ll mod){
    unordered_map<ll, ll> mp;
    unordered_map<ll, ll> se;
    mp.clear();
    se.clear();
    
    ll cur = 1, t = sqrt(mod) + 1;
    for(int B = 1; B <= t; B++){
        cur = cur * a % mod;
        
        if (mp.find(b*cur%mod)!=mp.end()) se[b*cur%mod]=mp[b * cur % mod];
        mp[b* cur % mod] = B;
    }
    
    ll now = cur;
    for(int A = 1; A <= t; A++){
        if(mp.find(now)!=mp.end() && A*t-mp[now]) return A*t-mp[now];
        if(se.find(now)!=se.end() && A*t-se[now]) return A*t-se[now];
        now = now * cur % mod;
    }
    return -1;
}
void solve(){
	scanf("%lld",&n);
	if (n%4==0 || n%5==0) {
		puts("-1"); return;
	}
	if (n%2==0) n/=2;
	
	printf("%lld\n",bsgs(10,1,9ll*n));
}
int main()
{

//	freopen("data.in","r",stdin);
	int T;
	scanf("%d",&T);
	while (T--){
		solve();
	}


	return 0;
}

 

标签:10,那么,int,ll,abc222G,include,222
From: https://www.cnblogs.com/ganking/p/17735812.html

相关文章

  • 222_有了它,Steam史低价、历史价、外区价尽收眼底
    这是一篇原发布于2020-01-2415:21:00得益小站的文章,备份在此处。前言小伙伴们,大家新年好啊,祝大家新的一年:天天有钱、月月中奖、年年发财。什么?你说今天是除夕,还不能算新年?好吧好吧,但steam可在今天开启了农历新年特卖活动,算上今年,已经是第四个年头了。众多游戏开启了优惠活动,......
  • BMS电池管理系统的蓝牙芯片 国产高性能 低功耗蓝牙Soc芯片PHY6222
    电池管理系统是对电池进行监控与控制的系统,将采集的电池信息实时反馈给用户,同时根据采集的信息调节参数,充分发挥电池的性能。但是,前技术中,在管理多个电池时,需要人员现场调试与设置,导致其检查、维护与更新相当不方便。而且,针对电池组的工作性能、电池老化情况、使用寿命等信息,需要......
  • [LeetCode] 1222. Queens That Can Attack the King
    Ona 0-indexed 8x8 chessboard,therecanbemultipleblackqueensadonewhiteking.Youaregivena2Dintegerarray queens where queens[i]=[xQueeni,yQueeni] representsthepositionofthe ith blackqueenonthechessboard.Youarealsogivena......
  • 如何远离被黑43.227.222.x
    如何高效防御木马病毒1. 加固所有账户的密码,主要包括以下密码建议密码长度不小于8位并且使用大写字母、小写字母、数字、特殊字符组合。·         服务器登录密码·         数据库连接密码·         网站后台密码·         FTP密码·  ......
  • PHY6222是奉加微电子最新推出的超低功耗系统级蓝牙芯片
       PHY6222是奉加微电子最新推出的超低功耗系统级蓝牙芯片,搭载ARM®@™-M032,可配置512KFlash;超低功耗,RX/TX峰值电流低至4.6/[email protected];拥有全套自主知识产权协议栈,支持多通信标准协议,可以满足客户的定制化需求;异构多对多的蓝牙Mesh网络,实现基于BLE的大规模物联网;接收灵敏度-9......
  • 222
    importdayjsfrom'dayjs';import{nextTick}from'vue';import{useDictStore}from'/@/store/modules/dict';import{useI18n}from'/@/hooks/web/useI18n';constdictStore=useDictStore();const{t}=useI18n();......
  • 代码随想录算法训练营第十六天| 104.二叉树的最大深度 111.二叉树的最小深度 222.
      104.二叉树的最大深度 (优先掌握递归)    卡哥建议:什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。大家要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。   题目链接/文章讲解/视频讲解:https://programmerc......
  • 222
    ACM程序设计实验室2023年度招新一:ACM简介  ACM-ICPC是由美国计算机协会主办的面向大学生的国际程序设计竞赛,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影......
  • CVE-2021-22204 GitLab RCE之exiftool代码执行漏洞深入分析(二)
    文章写于2022-01-19,首发在天融信阿尔法实验室目标导读1前言2前置知识2.1JPEG文件格式2.2Perl模式匹配3exiftool源码调试到漏洞分析3.1环境搭建3.2漏洞简介3.3exiftool是如何解析嵌入的0xc51b标签3.4exiftool是如何调用parseAnt函数3.5parseAnt函数分......
  • CVE-2021-22205 GitLab RCE之未授权访问深入分析(一)
    文章写于2021-11-29,首发在天融信阿尔法实验室前言安全研究员vakzz于4月7日在hackerone上提交了一个关于gitlab的RCE漏洞,在当时并没有提及是否需要登录gitlab进行授权利用,在10月25日该漏洞被国外安全公司通过日志分析发现未授权的在野利用,并发现了新的利用方式。根据官方漏洞通......