题解【CF1444A Division】】的更多相关文章

CF1444A Division 题意: 给定 \(t\) 组询问,每组给两个数 \(p_i\) 和 \(q_i\) ,找出最大的整数 \(x_i\) ,要求 \(p_i\) 可被 \(x_i\) 整除,且 \(x_i\) 不可被 \(q_i\) 整除 . 题解: 呜呜呜这道题总共算下来我爆了 \(15\) 发 \(\dots\) 妥妥掉分 \(p\nmid q\) :显然答案为 \(p\) . \(p\mid q\) :枚举每个 \(q\) 的因子 \(d\) ,将 \(p\) 一直除 \(d…
2020.12.20 求质因数的方法 CF1444A Division #include<bits/stdc++.h> #define ll long long #define fp(i,a,b) for(int i=a;i<=b;i++) #define sfp(i,a,b) for(int i=a;i<b;i++) const ll N = 1e6+10; using namespace std; ll t; ll p,q,cnt; ll a[N],cnt1[N],cnt2[N…
题面 t 组数据. 给定参数 p,q,求一个最大的 x,满足 \((x|p)∧(q∤x)\). \(1\le t \le 500\),\(1\le p \le10^{18}\),\(2\le q\le10^9\), \(1S\),\(512MB\). 思路 当 \(p < q\) 时 或 \(q∤p\),答案显然是 \(p\),直接输出即可 当 \(q | p\),即 \(q\) 是 \(p\) 的因子时 我们可以将 \(p\) , \(q\) 质因数分解,让 \(p\) 去除以 \(q\)的质…
A. Division time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard output Oleg's favorite subjects are History and Math, and his favorite branch of mathematics is division. To improve his division skills, Ol…
题意:求最大的正整数 \(x\) ,使 \(x \mid p且q \nmid x\) . 首先,当 \(q \nmid p\) ,显然取 \(x=p\) 是最优解. 现在,我们考虑 \(q \mid p\) 的情况. 考虑对 \(q\) 分解质因数,设 \(q=p_1^{a_1} \times p_2^{a_2}\times \cdots \times p_n^{a_n}\) . 那么,\(x\) 不为 \(q\) 的倍数,当且仅当 \(\exists i\),使得 \(x\) 分解质因数后 \…
[题解]HDU5845 Best Division (trie树) 题意:给定你一个序列(三个参数来根),然后请你划分子段.在每段子段长度小于等于\(L\)且子段的异或和\(\le x\)的情况下最大化分出子段的个数 区间/子段/序列这种东西一大性质就是右端点之后与前面无关. \(dp(i)\)表示上一个右端点是\(i\)且前面分出来的子段都满足条件的最多子段个数. 直接转移\(O(n^2)\)考虑优化这个东西,子段转前缀和是应该记起来的套路,现在问题就是变成查询两个前缀和的异或值是否满足条件.…
Given two integers, a and b, you should check whether a is divisible by b or not. We know that an integer a is divisible by an integer b if and only if there exists an integer c such that a = b * c. Input Input starts with an integer T (≤ 525), denot…
http://acm.hdu.edu.cn/showproblem.php?pid=3480 将一列数划分成几个集合,这些集合的并集为该数列,求每个数列的(最大值-最小值)^2的和的最小值. 简单的dp都会写,就不讲了. 然后就是四边形优化了,参考:https://blog.csdn.net/noiau/article/details/72514812 事实上四边形优化的条件一般是靠打表打出来的. 于是简单记录下吧: 先排序. 设dp[i][j]为前j个数划分成i个集合的最小值,cost[i][…
传送门 当我打开比赛界面的时候所有题目都已经被一血了-- BINXOR 直接把异或之后二进制最多和最少能有多少个\(1\)算出来,在这个范围内枚举,组合数算一下就行了.注意\(1\)的个数是\(2\)个\(2\)个变的 //quming #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a)…
传送门 AFO前的最后一场CC了--好好打吧-- \(SIMGAM\) 偶数行的必定两人平分,所以只要抢奇数行中间那个就行了 这题怎么被爆破了 //quming #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i) #define go(u) for…