思路
JinxiSui
退役ACMer
展开
-
HDU 5247 - 找连续数 ( 思路 + RMQ )
题意 一个长度为n ( n <= 10^4 )的无序数组, 找是否存在k区间使得区间内元素排序后是连续的, 求有多少个这样的k区间( k <= 1000 ) 思路 RMQ算法预处理区间的思想实现O(n)查询 记录这个区间的最大最小值, 如果 最大值-最小值+1 == j-i+1 则 ans[j-i+1]++ 剪枝: 1. 如果 最大值 - 最小值>1000, b...原创 2018-05-03 14:45:40 · 191 阅读 · 0 评论 -
HDU 6425 - Rikka with Badminton ( 组合数学,思维 )
题意 有n个学生打羽毛球,其中有a个人没拍没球,b个人只有拍,c个人只有球,d个人有拍有球。 现在要求选出几个人组织一场比赛,一共有2n2n2^n种情况,组织成功的条件是至少有2个拍1个球。求有多少种情况无法组织成功。 思路 一开始想组织成功的,但是发现情况太多太复杂,只要有2拍1球就可以,那么可能会有2排1球,2排2球,3排1球,3排2球……不好列举。 反过来想无法组织成功的情况并不多...原创 2018-08-21 09:38:06 · 297 阅读 · 0 评论 -
CodeForces 233B - Non-square Equation ( 思路,暴力 )
题意 对于公式 x2 + s(x)⋅x − n = 0x2 + s(x)·x − n = 0x^2 + s(x)·x - n = 0, 给出n(1 ≤ n ≤ 1018101810^{18}), 求是否存在x使得该式成立,其中s(x)代表数字x的数位之和。(如s(102) = 1 + 0 + 2 = 3) 思路 思路+暴力 为使公式成立,x可以取到 999999999 (再大就没必要枚...原创 2018-04-19 22:40:01 · 194 阅读 · 0 评论 -
HDU 6182 - A Math Problem
题意 输入一个n ( 0 <= n <= 1018101810^{18} ) 求有多少个k 使得 kk≤nkk≤n k^k≤n 思路 这个题蜜汁爆llu 用计算器试一下就知道当k = 16时, kk=1616kk=1616k^k = 16^{16} 已经超过 1018101810^{18} 所以最多是15 故用最朴素的循环求kkkkk^k 就行 AC代码 #...原创 2018-04-17 11:42:50 · 393 阅读 · 0 评论 -
HDU 6189 - Law of Commutation ( 规律 + 思路 )
题意 给出n, a ( n ≤ 30, 1 ≤ a ≤ 109. ), m = 2^n, 求[1, m]范围内有多少个数b使得 a^b mod m == b^a mod m 思路 打表找规律 1. 若a为奇数 cnt == 1 2. 若a为偶数 : 当 b <= n 时, 因为数据量较小可以直接暴力求 当 b > n 时, a^b % m 必然 = 0 要求有b使得 ...原创 2018-04-15 18:39:57 · 402 阅读 · 0 评论 -
HDU 6025 - Coprime Sequence ( 前缀gcd+后缀gcd )
题意 给出一个数组, 删一个数使得剩余数字构成的gcd最大 思路 借鉴前缀和思路 求出前缀gcd+后缀gcd, 通过这两个数组来求最大gcd即可 AC代码 #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #define ...原创 2018-04-12 12:03:52 · 221 阅读 · 0 评论 -
UVa 11526 - H(n)
题意 习题10-13 H(n)(H(n), UVa11526)输入n(在32位带符号整数范围内),计算下面C++函数的返回值: long long H(int n) { long long res = 0; for( int i = 1; i <= n; i=i+1 ){ res = (res + n/i); } return res;...原创 2018-02-11 13:06:18 · 303 阅读 · 0 评论 -
蓝桥 BEGIN4 - Fibonacci数列
入门训练 Fibonacci数列 时间限制:1.0s 内存限制:256.0MB 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余...原创 2018-02-27 15:06:14 · 184 阅读 · 0 评论 -
UVa 712 - S-Trees
题意 给你一棵完全二叉树,输入0往左走,1往右 思路 由于是二叉树,正好相应二进制数 直接存到字符串里模拟 AC代码 #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int T, t, len,...原创 2018-02-06 20:43:23 · 190 阅读 · 0 评论 -
UVa 10763 - Foreign Exchange
题意 交换生,每个人有起始地和目的地,交换需要满足的条件是如果一个学生要从1交换到2,则必须有另一学生从2交换到1处,才能完成交换 Input 2 1 2 2 1 2 1 2 1 2 0 Output YES NO TLE代码 之前考虑用map< pair< int,int >, int > ...原创 2018-01-27 15:56:41 · 231 阅读 · 0 评论 -
HDU 5783 - Divide the Sequence ( 贪心 + 思路 )
题意 给出一个数列, 求最多可以分割成多少个子序列使得子序列的前缀和都>=0 思路 倒序扫一遍, 若为正则划分为一个序列, 若为负则将该数加到数列中前一个数里(加到和>=0为止). AC代码 #include <iostream> #include <algorithm> #include <cstdio> #include <c...原创 2018-04-26 20:48:21 · 205 阅读 · 0 评论 -
HDU 6237 - A Simple Stone Game ( 分解质因数 )
题意 有n堆石头, 每堆的初始数量为a1,a2,…..,an Bob每次可以从一堆里拿一块石头放到另一堆中, 问最少操作多少次能够使得每堆石头的数量能被一个数x(x>1)整除, 在这里, 我们默认0能被任何数字整除 思路 先分解质因数, x的取值只可能是石头总和sum的质因数 然后对每个质因数进行操作, 即使每堆石头变成0或者质因数的k(k>=1)倍 先对每堆石头进行处理,...原创 2018-09-12 22:00:44 · 336 阅读 · 0 评论