01——数论题解

T1.最大质因子(bigfact)

有n个数,求最大质因子最大的数。

筛法+枚举

T2.奶牛的足球1(football1)

给出n(<=10^15)转化成m进制,然后分别写出每位展开的权值。

高精度的进制转换,打了好久的模板(累ing)(*,/,%,=,<等等)

T3.狐狸抓兔子(security)

N个洞,不删数的约瑟夫,周期m,求不会找到的洞的总数并输出从大到小前10个。

gcd(n,m)的倍数都是会被找到的,所以就是求gcd,然后判断是否倍数(输出10个)。

T4.奶牛的足球2(football2)

两堆球,a,b个,每次从多的那堆取出另一堆个数的球放到另一堆中,求最少次数或-1

用一下倒推的方法:

可以发现,tot=t*2k,则必有a=t*x,b=t*y

所以每次tot>>1,k<<1 然后判断

(a%tmp==0,b%tmp==0,a/sum+b/sum=tmp)

然后就可以判断了。如果某次(sum&1)就说明无解了。

时间: 2024-10-01 17:17:18

01——数论题解的相关文章

HDU 3049 Data Processing 数论题解

Problem Description Chinachen is a football fanatic, and his favorite football club is Juventus fc. In order to buy a ticket of Juv, he finds a part-time job in Professor Qu's lab. And now, Chinachen have received an arduous task--Data Processing. Th

HDU 1203 I NEED A OFFER! 01背包题解

本题题目居然写错了也没改正,囧,应该是AN OFFER! 题解就是dp加上概率论求解. 因为需要求最少有一间学校录取的概率,那么就可以使用逆向思维,求没有一间学校录取的概率.基本的概率论思维,不过如果久了没做概率论还是会有点麻烦的. 然后就是标准的01背包求解了: #include <stdio.h> #include <vector> #include <string.h> #include <algorithm> #include <iostrea

OCAC暑期比赛第三场 H题 01字符串 题解

01字符串原题链接:http://codeforces.com/problemset/problem/165/C[题目描述]一个字符串被称为“01字符串”当且仅当它只包含字符“0”和“1”.我们从字符串 s 中取出连续的一段组成的非空字符串就是 s 的子串.比如,"010" 有6个子串:"0", "1", "0", "01", "10", "010".一个字符串的两个

3040 中国余数定理 1[一中数论随堂练]

3040 中国余数定理 1 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 摘自算法导论...... 找出第k个被3,5,7除的时候,余数为2,3,2的数: 输入描述 Input Description 一个数k. 输出描述 Output Description 求出第k个符合条件的数. 样例输入 Sample Input 1 样例输出 Sample Output 23 数据范围及提示 Data Size & Hint

1702 素数判定 2[[一中数论随堂练]

1702 素数判定 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 一个数,他是素数么? 设他为P满足(P<=263-1) 输入描述 Input Description P 输出描述 Output Description Yes|No 样例输入 Sample Input 2 样例输出 Sample Output Yes 数据范围及提示 Data Size & Hint 算法导论——数论那一节注意Carmich

bzoj1045: [HAOI2008] 糖果传递(数论)

1045: [HAOI2008] 糖果传递 题目:传送门(双倍经验3293) 题解: 一开始想着DP贪心一顿乱搞,结果就GG了 十分感谢hzwer大佬写的毒瘤数论题解: 首先,最终每个小朋友的糖果数量可以计算出来,等于糖果总数除以n,用ave表示. 假设标号为i的小朋友开始有Ai颗糖果,Xi表示第i个小朋友给了第i-1个小朋友Xi颗糖果,如果Xi<0,说明第i-1个小朋友给了第i个小朋友Xi颗糖果,X1表示第一个小朋友给第n个小朋友的糖果数量. 所以最后的答案就是ans=|X1| + |X2|

1257: [CQOI2007]余数之和sum

1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2001  Solved: 928[Submit][Status] Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数.例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3

HDOJ 3911 线段树

链接: http://acm.hdu.edu.cn/showproblem.php?pid=3911 题意: 给出01串 1代表黑色 0代表白色 0 a b:询问[a,b]中1的连续最大长度 1 a,b:把[a,b]区间的0->1 1->0 题解: lsum1[],rsum1[],msum1[]分别表示区间左起连续1的最大长度,右起连续1的最大长度,区间1的最大连续长度 lsum0[],rsum0[],msum0[]分别表示区间左起连续0的最大长度,右起连续0的最大长度,区间连续0的最大连续长

1979 第K个数

1979 第K个数 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中第k大的数字减去第k小的数字的值m,并判断m是否为质数.(0<k<=n) 输入描述 Input Description 第一行为2个数n,k(含义如上题)第二行为n个数,表示这个序列 输出描述