[题目]洛谷10月月赛R1 提高组 [题意]求n!在k进制下末尾0的个数,n<=1e18,k<=1e16. [题解]考虑10进制末尾0要考虑2和5,推广到k进制则将k分解质因数. 每个质因数在n!中的数量,以2为例是n/2+n/4+n/8...这样统计.(含x个就被统计x次) 最后得到凑出的k的个数就可以得到末尾0的个数. 分解质因数复杂度O(√k),也使用pollard rho算法可以加速. #include <iostream> #include <stdlib.h>…
题目传送门:https://www.luogu.org/problemnew/show/P3927 题目大意:给你两个正整数n,k,求n!在k进制下末尾零的数量. 我们通过简单的数学分析,便可以发现,n!可以化为x*k^y(x,y∈N),而末尾零的数量,正是y. 经过进一步化简,$n! = x*\prod_{1}^{d(k)}d_{i}*y_{i}$,其中$d_{i}$为k的素因子,此处d(k)表示k的素因子个数,在已知d的情况下,求$y$并不复杂. 同时,我们也可以将k也化为这个格式,$k =…
题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请你帮忙. 输入输出格式 输入格式: 本题包含多组数据. 每组输入仅包含一行:两个整数n,k. 输出格式: 对于每组输入,输出一个整数:n!在k进制下后缀0的个数. 输入输出样例 输入样例#1: 10 40 输出样例#1: 2 说明 对于20%的数据,n <= 1000000, k = 10 对于另外…
原址 题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请你帮忙. 输入输出格式 输入格式: 每组输入仅包含一行:两个整数n,k. 输出格式: 输出一个整数:n!在k进制下后缀0的个数. 输入输出样例 输入样例#1: 10 40 输出样例#1: 2 说明 对于20%的…
题目大意:求$n!$在$k(k>1)$进制下末尾0的个数. 解题思路:一个数在十进制转k进制时,我们用短除法来做.容易发现,如果连续整除p个k,则末尾有p个0. 于是问题转化为$n!$能连续整除几个k. 我们先给k分解质因数,然后对于每个质因数,求出$n!$里有多少个质因数,然后如果k里有x个这个质因数,则求出的结果除以x.最后的答案为这些结果的最小值. 如何求$n!$里包含质因数的个数?由于$n!$是1乘到n,所以每p(p是质数)个数里一定有一个p,然后这些数中每p个里一定还有个p,以此类推即…
题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请你帮忙. 输入输出格式 输入格式: 本题包含多组数据. 每组输入仅包含一行:两个整数n,k. 输出格式: 对于每组输入,输出一个整数:n!在k进制下后缀0的个数. 输入输出样例 输入样例#1: 10 40 输出样例#1: 2 说…
题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请你帮忙. 输入输出格式 输入格式: 每组输入仅包含一行:两个整数n,k. 输出格式: 输出一个整数:n!在k进制下后缀0的个数. 输入输出样例 输入样例#1: 10 40 输出样例#1: 2 说明 对于20%的数据,…
[题目]洛谷10月月赛R1 提高组 [题意]给定n*n棋盘和<=16个棋子,给几个棋子种类和攻击范围,现我方只有一马,求能否吃王. [算法]状压+BFS [题解]16种棋子中,马不能吃马,直接处理马和王,那么就剩13个棋子,可以压成2^13表示棋盘现有棋子存活状态. 然后对vis[2^13][n][n]进行bfs. 细节: 1.攻击直到碰到其它棋子,那个碰到的棋子也算攻击范围内. 2.判断碰到棋子时,注意该棋子是否在当前局面存活. 3.多组数据,Q中途退出要清空. 学到了: 1.一份长代码要细心…
[题目]洛谷10月月赛R1 提高组 [算法]递推DP+树状数组 [题解]列出DP递推方程,然后用树状数组维护前后缀和. #include<cstdio> #include<cstring> #include<cctype> #include<cmath> #include<algorithm> #define lowbit(x) (x&-x) #define ll long long using namespace std; int re…
题目背景 小强和阿米巴是好朋友. 题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 <= i < n),均有: a[2i-1] <= a[2i] 且 a[2i] >= a[2i+1](若存在) 或者 a[2i-1] >= a[2i] 且 a[2i] <= a[2i+1](若存在) 阿米巴把他的喜好告诉了小强.小强便打算稍作修改,以让这个数列成为波动数列.他想知道…
原题传送门 题目几乎告诉你要用最大流 先进行搜索,将树的叶子节点都连到一个虚拟点T上,流量为inf(这样不会干扰到前面部分的最大流) 其他边按树的形态连边,以根节点为S,跑一变最大流即可求出答案 #include <bits/stdc++.h> #define N 100005 #define M 200005 #define inf (1<<30) #define getchar nc using namespace std; inline char nc(){ static c…
题目链接:https://www.luogu.org/problemnew/show/P3931 肉眼观察题目感觉可以跑最大流. 证明是如果拆断一棵树,可以最小割,最小割等于最大流. 注意: 图是无向边,在网络流里建两次边,即四次. 统计一下叶子节点,再建一个超级汇点,所有距离为inf. #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <…
Description 他们经常在一起玩一个游戏,不,不是星际争霸,是国际象棋.毒奶色觉得F91是一只鸡.他在一个n×n的棋盘上用黑色的城堡(车).骑士(马).主教(象).皇后(副).国王(帅).士兵(卒)摆了一个阵.然而F91觉得毒奶色是一只鸡.他发起了挑战:他要操纵一个白色骑士,不经过任何一个棋子的攻击范围(F91可以连续行动,而毒奶色的棋子不会动,除非白骑士进入了对方的攻击范围),并击杀毒奶色的国王(即进入黑国王所在的位置).请告诉F91他最少需要多少步骤来完成这一项壮举. 注意: 当F9…
题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算找出这三个数列内的最长波动数列. 也就是说,如果我们将三个数列记做a[n][3],他必须要构造一个二元组序列:<p[i], q[i]>,使得对于任何 i>1 有: p[i] > p[i-1] 若q[i] = 0,a[p[i]][q[i]] >= a[p[i-1]][q[i-1]]…
题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 <= i < n),均有: a[2i-1] <= a[2i] 且 a[2i] >= a[2i+1](若存在) 或者 a[2i-1] >= a[2i] 且 a[2i] <= a[2i+1](若存在) 阿米巴把他的喜好告诉了小强.小强便打算稍作修改,以让这个数列成为波动数列.他想知道,能否通过仅修改一个数(或不修改)…
TLE,额 ,有空再写吧. #include<queue> #include<cstdio> #include<vector> #include<algorithm> #include<cmath> using namespace std; ]={,,-,-,,,-,-},dy[]={,-,,-,,-,,-}; ; struct node{ int x,y; int step,state; }; queue<node>q; int n…
提交地址 题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算找出这三个数列内的最长波动数列. 也就是说,如果我们将三个数列记做a[n][3],他必须要构造一个二元组序列:<p[i], q[i]>,使得对于任何 i>1 有: p[i] > p[i-1] 若q[i] = 0,a[p[i]][q[i]] >= a[p[i-1]][q[…
题目大意:给你一串数列,问你能否改变1个数或不改,使它变成波动数列? 一个长度为n的波动数列满足对于任何i(1 <= i < n),均有: a[2i-1] <= a[2i] 且 a[2i] >= a[2i+1](若存在) 或者 a[2i-1] >= a[2i] 且 a[2i] <= a[2i+1](若存在) 解题思路:贪心地扫一遍即可.一共只有两种情况. 我们对于每种队列,记录下它前一个元素和当前元素,如果它不符合当前队列要求,就使计数器加1,并把它改成±∞(改成最大或…
P3926 SAC E#1 - 一道不可做题 Jelly [链接]:https://www.luogu.org/problem/show?pid=3926 题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢吃蒟蒻果冻.而SOL菌也很喜欢蒟蒻果冻. 有一天,他们在一起搓炉石,而SOL菌则要拿出蒟蒻果冻招待他的客人. 蒟蒻果冻一般在a度下保存在冰箱里.但是刚拿出来的时候太冰了,需要加热.SOL菌打算用一种神奇的电炉加热蒟蒻果冻.根据观察,它有一个特点:…
P3926 SAC E#1 - 一道不可做题 Jelly 题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢吃蒟蒻果冻.而SOL菌也很喜欢蒟蒻果冻. 有一天,他们在一起搓炉石,而SOL菌则要拿出蒟蒻果冻招待他的客人. 蒟蒻果冻一般在a度下保存在冰箱里.但是刚拿出来的时候太冰了,需要加热.SOL菌打算用一种神奇的电炉加热蒟蒻果冻.根据观察,它有一个特点: 1.蒟蒻果冻小于c度的时候,每p单位时间加热1单位温度: 2.当蒟蒻果冻等于c度的时候,需要q单位…
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + 2 == Number.MAX_VALUE; ... Number.MAX_VALUE + x == Number.MAX_VALUE; Number.MAX_VALUE + x + 1 == Infinity; ... Number.MAX_VALUE + Number.MAX_VALUE ==…
Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 有一天人诹Lee在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于1010),但是她很好奇在可能的多少进制下这个式子得到的答案长度最长,为了从人赢Lee手中抢走女神,你需要快速…
<script> var a = 5; function test(){ this.a = 10; a = 15 this.func = function(){ var a = 20 ; alert(this.a); } } var tt = new test(); tt.func(); setTimeout(tt.func, 1000); </script> 这是之前看到的一道js题,其中有a出现了五次,那么到底输出什么呢,我想看了我上一个随笔你应该就明白了. 这个题主要考察两个…
问题 为什么在重写equals()方法的同时,必须重写hashCode()方法? 解答 在<每天一道Java题[2]>中,已经对hashCode()能否判断两个对象是否相等做出了解释.equals()方法与hashCode()方法的关系如下: 如果两个对象的hashCode()返回值不一样,则equals()返回的结果必为false. 如果两个对象的hashCode()返回值一样的时候,equals()返回的结果未知. 如果两个对象的equals()返回的结果为true,则两个对象的hashC…
题目 synchronized怎么实现线程同步?请修改<每天一道Java题[10]>中的MyRunnableThread类以解决三个线程都获取到10的问题. 解答 方法一: 采用synchronized关键字包裹需要保证线程安全的代码块,来实现线程同步.语法格式为: Synchronized(expression){ //需同步的代码 } <每天一道Java题[10]>中的MyRunnableThread类修改为: package me.huangzijian; public cl…
一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人,对队员的队员的训练也是日常关心,他要求每周要有一位队员出一道题目.不知过了多少年,终于轮到Shiyiliang出题了,他费尽脑汁,终于出了一道大水题 给定一个偶数n,n的取值范围为[-1e18,1e18],要求一对整数x,y满足以下条件: 1.x*y==n 2.x与n必须同号,即如果n>0则x>0…
一道水题时间限制:1000 ms  |  内存限制:65535 KB 难度:2描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗?这个游戏是这样的:有一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出,大家赶紧写个程…
Luogu 2801 教主的魔法 | 分块模板题 我犯的错误: 有一处l打成了1,还看不出来-- 缩小块大小De完bug后忘了把块大小改回去就提交--还以为自己一定能A了-- #include <cstdio> #include <cstring> #include <algorithm> #include <set> using namespace std; typedef long long ll; #define space putchar(' ')…
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建树,画图,最短路径什么的,统统不需要.废话不多说,直接看题: 1.例题精讲 T1: 1348:[例4-9]城市公交网建设问题 时间限制: 1000 ms         内存限制: 65536 KB提交数: 2094     通过数: 650 [题目描述] 有一张城市地图,图中的顶点为城市,无向边代…
这是一道水题,实际考察的是你会不会写强连通分量...(在BZOJ上又水了一道题) Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎.你的任务是求出有多少头 牛被所有的牛认为是受欢迎的. Input 第一行两个数N,M. 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可 能出现多个A,B) Outp…