Description Vasya has n days of vacations! So he decided to improve his IT skills and do sport. Vasya knows the following information about each of this n days: whether that gym opened and whether a contest was carried out in the Internet on that day…
1. 小米笔试题——升级蓄水池 题目描述: 在米兔生活的二维世界中,建造蓄水池非常简单. 一个蓄水池可以用n个坐标轴上的非负整数表示,代表区间为[0-n]范围内宽度为1的墙壁的高度. 如下图1,黑色部分是墙壁,墙壁的高度是[0,1,0,2,1,0,1,3,2,1,2,1] ,蓝色部分是蓄水的面积,可以看出蓄水池最大蓄水容量是6. 现在米兔想通过增加某些墙壁的高度对蓄水池扩容,但是经费有限,最多只能增加最多m的高度,增加高度只能在[0-n]范围内,高度为0的区域也是可以增加的,为了追求最大的性价比…
[js]Leetcode每日一题-制作m束花所需的最少天数 [题目描述] 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k 朵花 . 花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中. 请你返回从花园中摘 m 束花需要等待的最少的天数.如果不能摘到 m 束花则返回 -1 . 示例1: 输入:bloomDay = [1,10,3,10,2], m = 3, k = 1 输出…
LeetCode 1482. 制作 m 束花所需的最少天数 题目 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k 朵花 . 花园中有 n 朵花,第 i 朵花会在 bloomDayi 时盛开,恰好 可以用于 一束 花中. 请你返回从花园中摘 m 束花需要等待的最少的天数.如果不能摘到 m 束花则返回 -1 . K<=N<=105 M<=106 题目理解 找到数组中的m组,每组是k个相邻元素组成(组之间不能有重复…
2021-05-09 LeetCode每日一题 链接:https://leetcode-cn.com/problems/minimum-number-of-days-to-make-m-bouquets/ 题目 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k 朵花 . 花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中. 请你返回从花园中摘 m 束花需要等待的最少的天数.…
链接:Click Me! P1023Victoria的舞会3 Accepted 标签:Victoria的舞会[显示标签] 描写叙述 Victoria是一位颇有成就的艺术家,他因油画作品<我爱北京天安门>闻名于世界. 如今.他为了报答帮助他的同行们,准备开一个舞会. Victoria准备邀请n个已经确定的人,但是问题来了: 这n个人每个人都有一个小花名冊.名冊里面写着他可以通知到的人的名字.比方说在A的人名单里写了B,那么表示A可以通知到B:可是B的名单里不见的有A,也就是说B不见得通知到A.…
补:华中VJ这个题目很多标程都不能AC了,包括我下面原本AC了的代码,再交就WA掉了,感觉是样例有问题呢-- 首先左边的是必须要选的,然后右边的需要注意,有些区间是可以舍掉的.1.区间里有两个不同的A. 2.区间里有一个A,而且这个A不是这个区间对应的A. 这个题我一开始错在了第2个判定条件上,我定义的id记录的是最后一个出现位置,不能进行判断,所以干脆在结构体里记录了他对应的A值. 舍掉后留下的区间,可以按照区间左边界排序,然后求交集即可. 总体来说,贪心的思想还是不难的,就是有一些细节需要注…
在我们在项目的时候,可能出现这样的一种情况,有一个开始时间和一个结束时间,而这两个时间用$('#StartTime').val(); 取出来的时候又是datetime 类型,我们需要求这个时间中的间隔天数这个时候我们应该怎么求呢? var startDay =$("#Date").val(); var endDay =$("#EDate").val(); //间隔天数 var startTime = new Date(Date.parse(startDay.repl…
题意:给你n张卡,每张卡上有蓝色和红色的两种数字,求一种排列使得对应颜色数字之间形成的逆序对总数最小 题解:贪心,先按蓝色排序,数字相同再按红色排,那么蓝色数字的逆序总数为0,考虑交换红色的数字消除逆序, 那么这个操作的代价是蓝色的数字逆序对增加2*len-3,而红色的数字交换最多也只能消除那么多对逆序对.不会比当前更优. 因为数据范围比较大,用树状数组,线段树,可能要离散,所以学习了归并排序的方法来求逆序对总数. 思路大概是,归并之前的左右两个序列是已经排好序的,分别叫做L和R,如果L(i)>…
HDU2037 今年暑假不AC  贪心算法 大意: 每次测试数据输入一个n,然后输入n对的电视节目播放时间:开始时间及结束时间, 求这个人能看的最多的完整的节目数. 解题思路: 对于这道解题,是对每个节目的结束时间排序,目的是使剩余时间留下,再判断还能看几个节目.对节目时间的排序结束后,依次判断,这次要看的节目的开始时间是否大于上次看的节目的结束时间,若是大于,则这个节目时可以完整观看的,若是小于则是不能完整观看的,所以跳到下一个节目继续判断 . 例子: 12 1 3 3 4 0 7 3 8 1…
题目链接 这题我开始一直在想如何在数组上dp操作搜索区间, 很蠢, 实际上用二分查找的方法可以很快的解决 首先我们通过一个函数判断第x天是否符合题意, 如果x天可以做出m束花, 那么大于m的天数必然可以. 从这里便可以看出其符合二分搜索的特性 : 答案在一个固定区间内: 可能查找一个符合条件的值不是很容易,但是要求能比较容易地判断某个值是否是符合条件的: 可行解对于区间满足一定的单调性. 由于题目设定的最大值是1e9, 我们可以直接把二分的左端设置为0, 右端设置为1e9 判断x天是否满足条件的…
闰年问题,因为二月份的天数与闰年有关.闰年的判断依据是:若某年能被4整除,但不能被100整除,则这一年是闰年:若某年能被400整除,则这一年也是闰年 #include <stdio.h> #include <stdlib.h> main(){ int year, month, days; while (1) { printf("输入年份:"); scanf("%d",&year); if (year==9999) break; pri…
对数据结构和算法感兴趣的可以关注一下https://github.com/MCQ1999/Datastructure_Algorithm_Solutions,分享算法题的解题思路和代码~ 1.压缩算法(栈模拟) 题意 链接:https://www.nowcoder.com/questionTerminal/c27561e5b7e0441493adb9a54071888d 来源:牛客网 小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分…
好久没做手生了,不然前四道都是能A的,当然,正常发挥也是菜. A:Launch of Collider 题意:20万个点排在一条直线上,其坐标均为偶数.从某一时刻开始向左或向右运动,速度为每秒1个单位长度.输入给出每个点的坐标及其移动的方向,求发生第一次碰撞的时间,若不会碰撞,则输出-1 最先发生碰撞的是一定是初始时相邻的两个点,因此只需对每个点循环一边,判断其是否会与下一个点碰撞,并求出其时间即可. #include<stdio.h> #include<stdlib.h> int…
9.14 DP合集水表 关键子工程 在大型工程的施工前,我们把整个工程划分为若干个子工程,并把这些子工程编号为 1. 2. --. N:这样划分之后,子工程之间就会有一些依赖关系,即一些子工程必须在某些 子工程完成之后才能施工.由于子工程之间有相互依赖关系,因此有两个任务需要我们去完 成:首先,我们需要计算整个工程最少的完成时间:同时,由于一些不可预测的客观因素会 使某些子工程延期,因此我们必须知道哪些子工程的延期会影响整个工程的延期,我们把有 这种特征的子工程称为关键子工程,因此第二个任务就是…
题目描述 Description 在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计算最少的找零硬币数,以便他们能从银行拿回最少的硬币数,并保证能用这些硬币发工资. 我们应该注意到,人民币的硬币系统是100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01 元,采用这些硬币我们可以对任何一个工资数用贪心算法求出其最少硬币数.但不幸的是:我们可能没有这样一种好的硬币系统,因此用贪心算法不能求出最少的硬币数,甚至有些金钱总数还不能用这些硬币…
硬币找零 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计算最少的找零硬币数,以便他们能从银行拿回最少的硬币数,并保证能用这些硬币发工资. 我们应该注意到,人民币的硬币系统是 100,50,20,10,5,2,1,0.5,0.2,0.1,0.05, 0.02,0.01 元,采用这些硬币我们可以对任何一个工资数用贪心算法求出其最少硬币数.  但不幸的是: 我们可能没有这样一种好的硬币系统,…
#1372 : 平方求和 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 对于一个非负整数n,最少需要几个完全平方数,使其和为n? 输入 输入包含多组数据.对于每组数据: 第一行是n:如果n为-1,表示输入结束.(0 <= n <= 1000000001) 输出 针对每组数据,输出最少需要的完全平方数. 样例输入 3 4 5 -1 样例输出 3 1 2 思路: 拿到这个题,我第一想到的是贪心,每次减去一个最大数的平方,但是有时候这样会得不到正确的答案,比如19 ,贪…
虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=40741#overview 1. A UVA 10602 Editor Nottoobad 好像是俄罗斯NOI的题目,题意是给定n个字符串,然后重新安排字符串的顺序,使得最后需要打的字母总数最少.当前单词和前一个单词相同的前面部分可以不用打, 只需打…
题目链接: http://codeforces.com/problemset/problem/698/A http://codeforces.com/problemset/problem/699/C 题目大意: N天,A(健身)或B(做比赛)或休息,每天都有4种情况,A可行B可行,A可行B不行,A不行B可行,AB都不行. 每天选择一种,不能连续两天选择同一种活动(可以连续休息),问最少休息几天. 题目思路: [动态规划] f[i][j]表示前i天,最后一天状态为j的最多休息天数(最少天数也行),…
C - Preparing for the Contest Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 377B Description Soon there will be held the world's largest programming contest, but the testing system sti…
题目链接 bzoj4946: [Noi2017]蔬菜 题解 挺神的贪心 把第次买的蔬菜拆出来,记下每种蔬菜到期的日期,填第一单位蔬菜比其他的要晚 按价格排序后,贪心的往前面可以填的位置填就可以了.找可以填的位置用并查集维护一下.这样就求出了最大天数的答案. 对于询问的答案,从最后一天往前推,把最便宜的那些丢掉就好了. 代码 #include<cstdio> #include<cstring> #include<algorithm> #define gc getchar…
POJ2376 Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14585   Accepted: 3718 Description Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some cleaning chores around the barn. He always wants to hav…
题目链接: https://vjudge.net/problem/POJ-2376 题目大意: farmer John要安排他的牛清理牛棚,一共有T个牛棚要清理,每头牛可以清理相邻的牛棚.比如,一头牛可以清理4-7号牛棚.当然了,牛清理的牛棚可以重叠.现在要你求出可以完成牛棚的清理的最少头牛的个数,不可以就输出-1. 思路: 贪心题.题目意思很明显是求最少的区间覆盖掉大区间.先对这些时间段排好序(见代码),这个排序应该是没什么问题的.然后呢,第一头牛肯定要选,就从这头牛开始,选取下一头牛.下一头…
题目描述 N头牛排成一列1<=N<=5000.每头牛或者向前或者向后.为了让所有牛都 面向前方,农夫每次可以将K头连续的牛转向1<=K<=N,求操作的最少 次数M和对应的最小K. 简单题意:给你一个01串,每次可以对长度为K的区间进行异或,求异或的最少次数以及对应的K. 解析: 这是一道有毒的模拟,我做了一个下午加加减减鼓捣半天都快吐(秃)了. 看到题第一反应二分答案,不过仔细一想,K和M并不相关,答案不具备单调性,无法二分出解. 所以,这道题其实是个模拟. 一个显而易见的贪心:从…
题目描述 描述: 假设海岸线是一条无限延伸的直线.它的一侧是陆地,另一侧是海洋.每一座小岛是在海面上的一个点.雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d.你的任务是建立尽量少的雷达站,使所有小岛都在扫描范围之内. 数据使用笛卡尔坐标系,定义海岸线为x轴.在x轴上方为海洋,下方为陆地. 样例1如图所示 输入格式 第一行包括2个整数n和d,n是岛屿数目,d是雷达扫描范围. 接下来n行为岛屿坐标. 输出格式 一个整数表示最少需要的雷达数目,若不可能覆盖所有岛屿,输出“-1”.…
众所周知lyb根本不学习.但是期末到了,平时不写作业的他现在有很多作业要做. CUC的老师很严格,每个老师都会给他一个DDL(deadline). 如果lyb在DDL后交作业,老师就会扣他的分. 现在假设lyb做作业都需要一天. 所以lyb想到要安排做作业的顺序,这样才能尽可能扣少一点分. 请帮帮bx吧. Input 输入包含T个测试用例.输入的第一行是单个整数T,为测试用例的数量. 每个测试用例以一个正整数N开头(1<=N<=1000),表示作业的数量. 然后两行.第一行包含N个整数,表示D…
[基础算法]第二章 贪心算法 例一 奶牛晒衣服 题目描述 有n件衣服,第i件衣服的湿度为h. 在自然条件下,每件衣服每分钟都可以自然晒干A点湿度. 在烘干机作用下,可以选择一件衣服,用一分钟的时间晒干B点湿度. 求出晒干所有衣服的最少时间(湿度为0为干). 输入格式 第一行三个正整数N,A,B. 接下来N行,第i行一个正整数,表示第i件衣服的湿度 h. 输出格式 输出一个数,表示晒干所有衣服的最少时间. 样例输入 3 2 1 1 2 3 样例输出 1 分析 在不考虑烘干机的情况下,最后一件烘干的…
题目链接:http://acm.hust.edu.cn/vjudge/contest/122829#problem/A 题目大意:N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 才能继续过人,每个人过桥都需要耗费一定的时间,让你求耗费的最少时间,并输出过河方案 首先,我们要明白一点,两个人过河肯定比只有一个人过河要来的划算,这样那个速度快的人 就相当于是被带过去的,然后我们从最简单的情况开始分析:(sort(a,a+n)) n=1时,直接过去就可以,t=a[0] n=2时…
题目链接: https://vjudge.net/problem/UVA-10037 题目大意: N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 才能继续过人,每个人过桥都需要耗费一定的时间,让你求耗费的最少时间,并输出过河方案 思路: 和之前POJ-1700一样,不过这里要求输出每次过河的人,所以先算出答案之后在来一遍输出路径 #include<iostream> #include<cstdio> #include<cstring> #incl…