思维
青春苦瓜
这个作者很懒,什么都没留下…
展开
-
POJ 3273 二分
题意:给定一个序列,划分成m个子串,求一个数x使得每个子串的和都小于x思路:二分,l是整个序列中的最大值,r是子列和,看看能不能划分成m个;判断是否能划分成m个:从头开始,累加 知道和大于当前mid,组数+1并且从当前位置继续累加。 最后如果组数大于m则表示不能划分 应把界限变大。import java.util.Scanner;public class Main { final s...原创 2020-01-31 19:10:49 · 94 阅读 · 0 评论 -
LeetCode.525 连续数组(中等)
题意:给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。思路:从头开始遍历,维护一个map记录1与0的数量差,到当前时,如果曾经出现过一样的数量差,说明当前pos到之前pos这段数量相等class Solution {public: int findMaxLength(vector<int>& nums) { int...原创 2019-12-29 14:06:50 · 2256 阅读 · 0 评论 -
1049 Counting Ones (30 分)思维
想麻烦了,想递归做来着 后来感觉很麻烦 就学了下大佬们的简单做法思路:考虑每一位的贡献对于当前的一个位now他的贡献肯定是由她左边的数left+右边的数right决定考虑now的值如果now为0,那么他是1的情况 只能由左边从0到left-1得来,同时右边的数有p种变化,一会再说p是啥所以这一位的贡献就是left * p如果now的值为1,在0的基础上 还增加了now为1时 右边的...原创 2019-11-19 16:15:37 · 72 阅读 · 0 评论 -
1038 Recover the Smallest Number (30 分) 巧做字符串排序
我哭了我真的菜哭了写了两个小时最后还差一个2分的测试点死活debug不出来网上一搜题解发现别人二三十行解决思路虽然一样但是做法千差万别我跟个憨憨一样慢慢模拟菜鸡的28分垃圾代码#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#includ...原创 2019-11-09 10:56:58 · 108 阅读 · 0 评论 -
CodeForces - 165C Another Problem on Strings 前缀和+二分
题意:给定一个01串和k,求包含k个1的子串的个数思路:用前缀和记录到当前位置的个数,那么就可以知道某个子串的1的个数我们遍历字符串对于每个位置i,以他为开头的子串,要求1的个数为k的数量,我们只需要求有多少个值等于sum[i-1]+k就可以了,枚举肯定不行,因为是前缀和有序,我们二分,两次二分upper_bound(sum+1,sum+len+1+1,sum[i-1]+k)-low...原创 2019-10-04 10:30:40 · 164 阅读 · 0 评论 -
2018ICPC南京网络赛 J题 Sum 找规律+数学
题目链接题意:定义cnt[i]是任意一个数分解成无平方整数的方案数给定n求前n项cnt[i]的和思路:遇到这种题就多写几个数看看找找规律 差不多就出来了有那么几种情况①是质数:方案数铁定是1②不是质数:那么他的方案数是他两个因子方案数的乘积加上下面特殊考虑:若该合数为平方数,则分解方法数要除4若该合数的其中一个因子是n次方数(n≥3),则分解方法数为0既然用到判断是不...原创 2019-10-02 20:47:29 · 143 阅读 · 0 评论 -
[CodeForces-484B] Maximum Value 有点暴力的二分思维题
题意:给定数组a,从中选出两个数让 ai%aj的值最大(ai大于aj 下标顺序不限)思路:先排序,对于每个数b 用他模任何数,最大也只能是b-1,我们只要在其他数中 找到离他倍数最近的那个并且小于他那个,不管几倍,简单想想便是这道理,接下来就枚举2倍3倍n倍一直到小于序列中最大的数,然后每次二分查找>=当前倍数的下标,然后这个下标左边的数便是。细节优化,有可能最大的数比a[i]的...原创 2019-09-30 15:43:08 · 146 阅读 · 1 评论 -
HDU 6154 CaoHaha's staff 找规律 打表 思维
我觉得这是我写的最用心 的一篇博客了,,,题意:在二维网格中画边,每次长度为1或根号2,包围成一个面积,给定一个整数n,问最少多少笔构成的面积大于n思路:写写画画出答案,但是我太菜,网上的题解看半天才懂,关键是他们的题解也太应付事了,图都没有,有图才直观嘛,还有就是计算公式,你都不说怎么来的 人家谁看得懂啊,直接就化简成最后一步了,这谁顶的住啊要想构成的面积尽可能的大,我们就尽量把每一笔...原创 2019-09-27 10:31:48 · 107 阅读 · 0 评论 -
[Kattis-crisscrosscables] Criss-Cross Cables (贪心+优先队列)
题意:第一行给定n个点和m条绳子,第二行是点的位置(从小到大排列),第三行是绳子的长度。问能不能把所有的绳子都连进去(绳子的长度>=点之间的距离才可以连,且相同的两个点之间不能连两条绳子)。思路:贪心,n个点共可以连n*(n-1)/2条边,如果绳子数量大于这些就no维护一个最小堆然后先遍历一遍把相邻两点的距离放入堆中越短的绳子肯定要对应距离越小的边,我们从小到大遍历绳子,每次找出里...原创 2019-08-30 13:28:21 · 149 阅读 · 0 评论 -
Hello XTCPC HDU - 6536 两种方法
题意:给你一个字符串,让你在里面寻找可不连续的字符串“xtCpc”,问有多少个注意:这种啥都不说就多组输入的真的是nmsl思路:①用队列处理,简单 直接贴代码#include<iostream>#include<algorithm>#include<map>#include<queue>using namespace std;con...原创 2019-08-28 11:58:54 · 375 阅读 · 0 评论 -
D- Wave [HDU-6570] 江西省赛
题意:给定一个序列如果满足以下条件,则称为“wave”:1)至少含有两种元素;2)奇数位各元素相同;3)偶数位各元素相同;4)奇数位置的元素与偶数位置的元素不同。给你一个长度为n的序列,要求你找到最长的“wave”子序列。思路:暴力枚举两种不同的数(但是枚举的时候要注意位置是否满足条件) 说不清 还是看代码吧 有注释 好理解#include<iostream>#i...原创 2019-07-23 17:21:28 · 126 阅读 · 0 评论 -
[CodeForces-714B] Filya and Homework 思维
题意:给你一个含有 n 个数的数组, 问你是否存在一个 x, 使得这个数组中的某些数加上 x, 某些数减去 x 后所有数都相等.思路:如果序列中不同的数大于3个,则不可能如果序列中不同的数为3个, 分别为a,b,c(a<b<c) 那么把与a相同的数都加上(b-a)得到b...原创 2019-07-05 11:05:26 · 96 阅读 · 0 评论