首页 > [USACO 2009 Dec S]Music Notes
头像 _Sheepsheep
发表于 2021-01-25 20:51:30
二分找答案,用一个前缀和,不然会超时x要注意的地方:1.什么时候右边界收缩,什么时候左边界收缩。2.找到答案时,l,r区间不存在,答案出现在l处,即r+1处。 #include<iostream> #include<cstdio> #include<algorithm& 展开全文
头像 sunrise__sunrise
发表于 2020-06-07 18:48:45
前缀和+STL 前缀和应该挺简单不用我说吧,C++中一个STL叫upper_bound()查找在一个左闭右开的区间中第一个大于x的迭代器位置,记住不带等号!!带等号的是lower_bound()!!!迭代器减掉起始下标就是距离了。 #pragma GCC target("avx,sse2,sse3 展开全文
头像 装糊涂高手_
发表于 2022-03-28 12:48:46
前缀和维护好音符时间求和数组,再去查找t时刻在前缀和数组中的最大插入位 置,查找用二分查找函数upper_bound(),时间复杂度O(Q*logN) #include <bits/stdc++.h> using namespace std; const int Max = 50002 展开全文
头像 在刷题的单身狗很开心
发表于 2023-09-04 10:33:13
//使用前缀和记录在什么时候音符开始演奏,然后在通过二分查找值的范围即可。 #include <bits/stdc++.h> using namespace std; const int maxn = 50000+ 展开全文
头像 东溪看水
发表于 2020-06-04 16:50:40
解题思路 歌曲由 个音符组成,第 个音符持续 拍。在时间 0 开始播放歌曲;从时间 0 到时间 之前播放音符 1,从时间 到时间 之前播放音符 2,依此类推。询问 个如下述形式的问题:在从时间 到时间 之前的间隔中,应该演奏哪个音符? 在时间 在 范围内时,演奏音符 1;在时间 展开全文
头像 SSuryxin
发表于 2021-05-06 18:11:47
Music Notes 题目描述: FJ is going to teach his cows how to play a song. The song consists of N (1 <= N <= 50,000) notes, and the i-th note lasts for 展开全文
头像 埖小颜
发表于 2024-03-06 09:16:15
在做这个题的时候思路跑偏,考虑的太复杂,然后一开始看到题目中描述的是,接下来的n行是第i个点到起点的距离,我就想起了前缀和,于是就将每个两个之间的距离计算出来了,然后对这些距离进行排序,完全没有思路,在看到别人写的题解和思路时,发现自己想的太复杂了。就是单纯的将与起点的距离最大和与起点的距离最小作为 展开全文
头像 hnust_zhangxingyu
发表于 2024-07-22 16:16:07
[USACO 2009 Dec S]Music Notes 二分板子, 写的不太熟练 也可以直接使用upper_bound() ac代码: //寻找第一个大于前缀和的下标+1 //2(0 1) 3(2) 6(3 4 5) #include <bits/stdc++.h> using n 展开全文
头像 fulin10
发表于 2023-12-08 21:59:47
呃呃还算简洁吧,前缀+二分。。。。里面写找第一个大于等于t+1的位置,这个位置(下标)就是第某个音符。 int N,Q; int sumpre[60000]; int main(void) { cin>>N>>Q; int a; for(int i=1 展开全文
头像 三大爷的剑
发表于 2021-10-12 14:04:29
技巧     前缀和  二分 思路     构建前缀和 二分搜索前缀和找到第一个>=t的位置 实现 package main import ( "bufio" . "fmt" " 展开全文

等你来战

查看全部