
思维
hohotiger
这个作者很懒,什么都没留下…
展开
-
1558. 得到目标数组的最少函数调用次数 二进制|思维
得到目标数组的最少函数调用次数给你一个与 nums 大小相同且初始值全为 0 的数组 arr ,请你调用以上函数得到整数数组 nums 。请你返回将 arr 变成 nums 的最少函数调用次数。答案保证在 32 位有符号整数以内。示例 1:输入:nums = [1,5]输出:5解释:给第二个数加 1 :[0, 0] 变成 [0, 1] (1 次操作)。将所有数字乘以 2 :[0, 1] -> [0, 2] -> [0, 4] (2 次操作)。给两个数字都加 1 :[0, 4.原创 2020-08-25 17:42:04 · 208 阅读 · 0 评论 -
Hihocoder 1632 : Secret Poems 思维|技巧
题意定义一个矩阵 他有n*n大小 然后给出他的真实信息的走法 让我们变换走法 再次把真实信息填入矩阵中 n<=100分析可以发现原文的读取方式无非就是如此 (0,1)向左 (1,-1)左下 (1,0)向下 (-1,1)右上 1边界检查 (1,0)向下 (1,-1)左下 (0,1)向左 (-1,1)右上 2退出检查 观察发现其中下和左移动都是1步原创 2017-11-23 08:27:17 · 356 阅读 · 0 评论 -
CF Vicious Keyboard 构造水题
分析为了防止出错 这里要注意 为了防止VK判断的时候 不影响其他的判断 对于一个VK 我们最好不要把他删掉 就直接把原来的VK覆盖掉 然后对于剩下的可能 最多只能增加一个VK 就是通过 目标条件判断 #include<bits/stdc++.h>using namespace std;int main(){ string l; getline(cin,l);原创 2017-11-23 21:59:17 · 389 阅读 · 0 评论 -
wannafly挑战赛4 C-割草机 思维
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 有一块n*m的地,每块地要么长满杂草(用’W’表示),要么是空地(用’G’表示),现在有一个人站在(1,1),面向(1,m),他可以按如下两种方式移动:1、向面朝的方向移动一格,耗费1单位时间2、向下移动一格,并反转面朝的方向(右变左,左变原创 2017-11-25 10:26:10 · 498 阅读 · 0 评论 -
Hihocoder #1631 : Cats and Fish 模拟
题意现有n个鱼 m个猫 每条猫有吃一条鱼所要花去的时间 问最终x分钟后会有多少只完整的鱼 和不完整的鱼分析很像操作系统的资源调度的问题 这种卡时间点的问题向来都要好好把 每个步骤所发生的时间给他具体化 我们看每只猫吃一条鱼花去ci分钟 而他是在这一分钟开始的时刻开始吃的 放到时间轴里就是 0-1-2-3-4-… 、 定义时间点表示在ti分钟之后 所有猫在0时刻开始的时间点申请吃鱼原创 2017-11-27 15:46:47 · 274 阅读 · 0 评论 -
Codeforce - 920C- Swap Adjacent Elements 排序|思维
题意输入n 再输入n个数为1~n的一种排列 再输入n-1个1或0,1表示该元素可以和后面的元素进行交换,0表示不能和后面的元素进行交换 让我们判断这个数组能否经过交换得到一个递增序列分析我们发现连续的1的范围内再加上后面一个0 此区间内任意一个元素是可以通过向后交换去到任意位置的 因为连续的1表示区间内所有元素不仅可以向后交换,也可以说是后一个元素可以向前交换。然而0前面的元素却不能交原创 2018-03-01 12:55:51 · 255 阅读 · 0 评论 -
Codeforce Flea CodeForces - 32C 规律|思维
题意给我们一个n*m的表格 告诉我们每次跳跃的格子数量s 只能垂直或者水平跳跃 可以跳跃无限次 那么某格子能到达的不同格子的数量就是这个格子的值 求表格中值最大的格子的数量分析表面上看像是搜索 然而1e6的数据搜索行不通 其实分析下是个规律题 也就是符合能够互相抵达的格子最多的在一个表格中是符合某种计算规律的 我们发现 任意一个表格 都可以根据不同的跳跃数量得到规律从而计算出如果在表格中尽可能原创 2018-03-01 22:06:02 · 274 阅读 · 0 评论 -
Codeforce 980 C. Posterized 思维
C. Posterizedtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputProfessor Ibrahim has prepared the final homework for his algorithm’s class. He asked ...原创 2018-05-19 11:20:16 · 220 阅读 · 0 评论 -
codeforce 980B - Marlin 思维|构造
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.Sca...原创 2018-05-16 10:09:19 · 221 阅读 · 0 评论 -
AtCoder-2379 - 连接竹竿 思维 | 数学
Problem Statement Snuke has N integers. Among them, the smallest is A, and the largest is B. We are interested in the sum of those N integers. How many different possible sums there are?Constrai...原创 2019-02-13 17:49:12 · 311 阅读 · 0 评论 -
next_permutation算法(基于交换)
nextpermutation 算法这个算法如何实现 我们要观察对于任意的123456对于一个任意的字符串我们如果要找他的下一个全排列就应该变动其数字 使得其数值增大 且是最小的增大那么仅使用以上数字 如何才能使其变大 但变大的数字 是所有变大范围内最小的可能 我们称其为 最小变大我们看 如果是 1234 下一个数 1243再来 1243 下一个数是 1342那么 1342 下...原创 2019-02-25 12:50:47 · 372 阅读 · 0 评论 -
Vasya and Multisets CodeForces - 1051C 模拟|分类讨论
题意:把数组分成两个集合 每个集合中元素数量为1的个数相同(此个数可以是0)分析: 这类问题就是要各种可能情况考虑到 然后分类讨论 完整地正确分类就AC 否则gg 如果数量为1的元素数为偶数个 对半分 如果元素数量为1的元素数为奇数个 分类讨论 如果有元素数>=3的元素 抽一个分到少的那一半 如果没有 就输出NO C...原创 2019-03-01 16:31:59 · 174 阅读 · 0 评论 -
Grid game CodeForces - 1104C 放格子|思维|找规律
题意:4*4的格子中输入0放 2*1的图案输入1放1*2的图案 当摆满一行或一列后此行列图案清空 就想毛熊方块一样分析:开始感觉很唬人 要搜索还是要dp啥的 后来发现原来2*1就放左下 1*2就放左上 然后来啥清空啥 就能够循环不断地放下去然后变成了一道巨水题。。。还是不能被题面吓住啊....跟格子相关的题目 很多貌似都有规律和技巧对人类来讲我们可以很灵活的选择位置 然后保证...原创 2019-03-01 19:48:48 · 331 阅读 · 0 评论 -
OpenJ_Bailian - 3468 数字规律|贪心
题意:就是有个用两个电池的电器 输入一些电池的电量问我们在这种条件下 最多能用多少电量比如 三节电池 4 4 7那么 4 4->3.5 3.5 ->3.5 7->0 3.5 ->3.5 3.5 ->0 0 换7 换成3.5分析: 应考虑如何才能最大...原创 2019-02-26 16:34:40 · 84 阅读 · 0 评论 -
AtCoder - 4172 Modulo Summation 贪心
开始想复杂的了 仔细观察样例后发现这个数 其实就是所有的数的LCM-1吗只有LCM-1 对所有数取模的时候才能对所有数得到MOD = a[i]-1;那么一个X%Y得到的最大值就是Y-1于是得到了这个代码#include<iostream>#include<cstdio>#include<queue>#include<cstring&...原创 2019-04-23 14:59:02 · 494 阅读 · 0 评论 -
Increasing Subsequence (hard version) CodeForces - 1157C2
time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe only difference between problems C1 and C2 is that all values in input of prob...原创 2019-05-10 19:44:56 · 288 阅读 · 0 评论 -
pat 1134. Vertex Cover (25) 思维
#include<bits/stdc++.h>using namespace std;vector<int>v[10003];bool bok[10003];int main(){ int n,m,q; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ int s,e; scanf("%d%d",&原创 2017-12-11 00:03:55 · 206 阅读 · 0 评论 -
Crusaders Quest ZOJ - 3983 构造|思维
题意给我们一个字符串 其中只有a,o,g 当三个相同字符连在一起时释放大技能 我们可以消除任意连续数量的字符 问我们最大的释放大技能的数量是多少分析首先答案只能是 1 2 3 如果这个字符串中存在连续三个的我们可以直接消去 删掉 3个的情况就是三个通过删除的过程中可以形成或是已经就是三个的情况 直接删除 当我们在构造一个字符连着的三个时 我们需要删除这个字符中间的字符 那么如果我们要寻原创 2017-11-18 15:12:08 · 674 阅读 · 0 评论 -
HDU-6180 Schedule
题意 给n个工作的开始时间和结束时间 每个工作需要用机器来完成 让我们给这n个工作规划机器 规划出尽可能少机器数目 以及计算最少的机器时间(机器时间为机器使用的最终结束时间减去开始时间)分析 这道题其实就是一个工作的开始结束形成了一个线段 让我们求多个线段不交叉不重叠拼接拼到一个方向上 拼合后 求最终剩下的线段方案数 和工作时间所以这道题可以看出一个性质 那就是每原创 2017-08-27 12:53:01 · 282 阅读 · 0 评论 -
HDU 6168 Numbers 思维
本题就是告诉你有两个数串 其中第一个数串中的每两个元素ai和aj(i本题其实仔细一想就能发现 这个问题 我们从数串的特点上考虑 第二个数串是第一个数串组成的 那么如何找出第一个数串呢? 当我们把元素排完序后 发现 最小的两个元素一定是第一个数串的 明显没有其他元素能够构成这两个最小的元素然后我们把这两个数之和从剩下的数中删掉 因为要排除第二串数然后对余下的数分析 剩下的最小原创 2017-08-23 19:20:48 · 202 阅读 · 0 评论 -
Elegant Construction HDU-5813 构造
- 题意 给出我们从1-n城市的点能直接(或间接)到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以 题目中给出 图中无环无回路- 分析刚看到根据联通数目构造图 哇 这怎么做 好复杂啊!这该如何构造??其实想一下就可以发现 题目中说是一个无环图 也就是说 任何一个有向无环图中必定至少存在一个原创 2017-09-06 20:46:38 · 193 阅读 · 0 评论 -
HDU 5882 Balanced Game 分析+欧拉图
题意就是把判断有五个姿态的剪子包袱锤游戏其中能否平局分析。。。。code ##/* 本题的正确逻辑是 分析出图中要求的是个欧拉图 因为每个点的入度等于出度 每个点的攻防数目都一样 所以可以把当前有向欧拉图 转化为无向欧拉图 当且仅当 其中没有奇数定点的时候 所以这道题 ~*/#include<bits/stdc++.h>usi原创 2017-09-16 10:52:40 · 266 阅读 · 0 评论 -
HDU - 5878 A - I Count Two Three H 技巧枚举
题意输入 t (1≤t≤500000), the number of test cases. t test cases follow. Each test case provides one integer n (1≤n≤109).让我们不小于n的最小的x满足 x=2^a*3^b*5^c*7^d 分析这道题其实就是个枚举但是不能随便枚举 比如 如果向这样枚举的话 scanf("%lld原创 2017-09-17 10:06:00 · 387 阅读 · 0 评论 -
HDU-4793 Collision 计算几何 解方程
题意给我们两个大小不同的圆的半径小圆是实心的 大圆是空心的 然后给我们一个小球的半径 小球的初始位置 还有飞碟在x方向和y方向上的速度 小球撞到内实心圆会能量不损失的反弹 问小球任何位置与大圆相交到完全出去的时间是多少分析几何题 如何知道时间呢 如果小球与大圆相切或是无交点 那么小球所求的时间是0 如果小球与内圆相切或是无交点 那么小球所求的时间就是在内圆的交点处的两个时间相减 如果小球与内原创 2017-09-30 11:38:49 · 224 阅读 · 0 评论 -
HDU-5935 Car 逆推 贪心 精度
题意1 主人公从0开始开始跑2 使用速度非递减技能3 警察记录下了多个整数时间点他的位置 整数时间点不明确让我们求主人公所花费的最小时间跨越过最后一个位置点 分析本体选用逆推处理 为啥用逆推 因为速度是非递减的 如果从前面推 会导致不断重复修改 前面的时间 时间不好把握最小 所以从后往前看每一段的速度就是递减的 为了保证最小 所以不如让最后一段的时间是个1 这里贪心一下 当求出最后一段原创 2017-09-22 11:03:13 · 235 阅读 · 0 评论 -
HDU-5050 java大数
题意给出一对长和宽 输出在这个长和宽之下 尽可能大的分出全部相等的小正方形的边长 输入输出都用二进制表示分析两个长度下都可以分出来就是gcd codeimport java.math.BigInteger;import java.util.Scanner;public class Main { static Scanner sc = new Scanner (System.in);原创 2017-10-02 17:13:42 · 266 阅读 · 0 评论 -
CodeForces-887B 技巧DFS
标题最大不超过3个筛子 让我们从其中任选筛子组合成数据 问我们组不成的最小的数是多少分析要模拟把最大3个筛子 选出1,2,3个的情况去组合 我们可以枚举所要选的数的数量 用next_permutation得到这n个数的全排列 这样不论的选几个筛子 都会便利到所有情况 然后在把所有情况统计一下#include<bits/stdc++.h>using namespace std;bool bok[原创 2017-11-08 21:43:13 · 236 阅读 · 0 评论 -
HDU-5532Almost Sorted Array LIS问题
题意就是检查这个序列是否删除一个元素就能变成非严格的有序序列 表面上就是一个卡条件检查数组的问题分析: upper_bound只会替换让留在数组里的最长递增子序列尽可能小 由于upper查出来的结果下标是那个可以插入这个值得最后一个元素 所以他会把大的数变成小的数upper将可以替换成新元素的元素替换成更小的 将不能替换的元素 大的元素直接放在最后面 很神奇你会发现 这个问题 通过一个二原创 2017-09-01 16:15:59 · 266 阅读 · 0 评论 -
HDU-4278 Faulty Odometer 数学递推 || 八进制
题意这个里程表当走到3或8的时候就会跳过 给我们这个里程表上显示的数字 让我们求这个里程表的真实数据是多少分析由于 3 和 8 不存在 那么就相当于一个八进制数 但是这个八进制中3 是写作4 8是写作9 那么就好写了 也就是把数入的“特别八进制数”转化成一个十进制数 还有一个方法就是推每一位具体是少了多少个数 做题的时候一开始想往数位dp上想 结果Z神一下就想到了递推 犇!! 通过对输原创 2017-11-03 16:58:05 · 580 阅读 · 0 评论 -
K-Dominant Character CodeForces - 888C 思维 构造
题意让我们在这个字符串中找一定k长度的字串中都至少含有一个相同的字符 让求这个字串的最小长度分析也就是说当我们最终确定了 字串的最小长度后 每个以此长度的字串都至少含有一个相同字符 那么当我们找这个长度的时候 也就是说 每个k长度的字串中都至少出现一个相同的字符 那么也就是说 如果我们知道每个字符间距的最大距离作为这个串的必要结果 也就是说 这个所有字符最大间距的最小值就是我们需要的答案 cod原创 2017-11-13 21:18:00 · 296 阅读 · 0 评论 -
CodeForces 841C (C) Leha and Function 贪心
题意定义F(n,k)F(n,k)表示1-n的数列中以k为子集总个数的最小值 现有A,B数组 让我们重新排列A 使得sigma[1 len]F(ai,bi)sigma[1 ~ len]F(ai,bi)的数学期望最大分析题目看上去有点绕 但分析下其实就能发现 本题再1-n的的排列中求k个元素的子集最小数的数学期望应该是: X=1∗C(n−1,k−1)/C(n,k)+2∗C(n−2,k−1)/C原创 2017-11-18 11:54:00 · 256 阅读 · 0 评论 -
CF#420 B. Okabe and Banana Trees 思维|暴力|几何
Okabe needs bananas for one of his experiments for some strange reason. So he decides to go to the forest and cut banana trees.Consider the point (x, y) in the 2D plane such thatx and y are intege原创 2017-11-12 23:32:41 · 243 阅读 · 0 评论 -
CodeForces - 888C K-Dominant Character 思维
题意找到在整个字符串中 所有以k长度的子串中的公共串至少长度为1的字符串 求出这个K的最小值是多少 分析每个子串都有的至少长度为1的公共子串 这里我们要求k的最小 那么不如就把公共串的长度考虑为1 因为如果存在一个公共串长度为k>1的串 那么他必然满足k=1时的解 所以这里不如简化问题 统计下每个字符的最长距离就可以了 求出所有出现过的字符的最长距离中的最小值 复杂度O(n)#include<原创 2017-11-18 13:35:15 · 316 阅读 · 0 评论 -
Not Equal on a Segment CodeForces - 622C
You are given array a with n integers and m queries. The i-th query is given with three integers li, ri, xi.For the i-th query find any position pi (li ≤ pi ≤ ri) so that api ≠ xi.InputT原创 2017-05-19 11:33:11 · 301 阅读 · 0 评论