首页 > 其他分享 >【无评级杂题】DP/贪心

【无评级杂题】DP/贪心

时间:2024-02-15 14:00:12浏览次数:16  
标签:int max flag DP include 杂题 dp 贪心

题目
image

这题后来看了看网上的思路,发现贪心就能做,亏我还写了个O(2*N)的DP...浪费时间了属于是

my-code

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <unordered_map>
#include <cmath>
#define int long long
using namespace std;
int n,k,a[100000+5],dp[100000+5][2];
signed main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	//dp i j represents that the max_ans of the game just include the formal i ones and j=1 represents that the last one is chosen while j=0 is not be chosen. 
	//dp[i][0]=(dp[i-1][1],dp[i-1][0]);
	//dp[i][1]=1+max(dp[j][1],dp[j][0]) ;j is the max num which is <=ai-k
	dp[1][1]=1;dp[1][0]=0;
	for(int i=2;i<=n;i++)
	{
		dp[i][0]=max(dp[i-1][1],dp[i-1][0]);
		int j,flag=0;
		for(j=i-1;j>=1;j--)
		{
			if(a[i]-a[j]>=k)
			{
				flag=1;
				break;
			}
		}
		if(flag==1)
			dp[i][1]=1+max(dp[j][1],dp[j][0]) ;
		if(flag==0)
			dp[i][1]=1;
	}
	cout<<max(dp[n][1],dp[n][0]);
	
	return 0;
}

标签:int,max,flag,DP,include,杂题,dp,贪心
From: https://www.cnblogs.com/gongkai/p/18016221

相关文章

  • 树形 DP
    简单的树上dp其实已经在普及组涉及过:自上而下和自下而上传递的性质。现在我们需要研究更复杂的树上dp,比如换根dp等等。【树上dp】最大子树和给出一棵带点权的树,求这棵树中的最大权连通块。因为是无根树,我们人为规定1号结点为根。\(dp[i]\)表示以\(i\)为根的子树......
  • 贪心题目合集
    磁带存储:有\(n\)个磁带,每个片段有两个参数:时长\(t_i\)和频率\(a_i\)。以某种顺序把片段排在磁带里,每个片段的花费为(播放完这个片段的时刻)乘以(该片段的频率)求最小花费和。因为两个片段交换,对之后没有影响。所以可以考虑一个顺序中,如果\(x,x+1\)片段换位置后花费的变化。......
  • 反悔贪心(模拟费用流)
    反悔贪心(模拟费用流)贪心本身是不能反悔的,但如果当前最优解不是全局最优解,我们就需要通过反悔来贴近全局最优解。一般用堆来实现,即堆中维护当前可以用来反悔的决策,然后每次取最优的决策。其实从更一般的角度,反悔贪心就是建出费用流模型,然后用数据结构来模拟增广的操作。一些例题......
  • 区间 DP
    思路:按区间的\(len\)从小到大DP,枚举左端点,算出右端点,再枚举中间的分界点转移有可能是向左右两端各扩展\(1\)步还有时要记录在左/右端点,分开转移把问题划分为区间长度更短的最优子结构注意\(len=1\)时初始化及边界P4342[IOI1998]Polygon这题已经说了去掉一条边后执......
  • 高维前缀和(SOS DP)
    高维前缀和(SOSDP)通常求二维前缀和,用容斥来求但其实,完全可以先做一遍行的前缀和,再做一遍列的前缀和拓展到\(k\)维也是如此,可以在\(O(nk)\)的复杂度求前缀和但怎么和DP扯上关系?可以把第\(i\)维当作阶段,每一维的具体信息是状态先枚举阶段,表示当前固定其它维,只统计这一......
  • 「杂题乱刷」洛谷 P1831
    题目链接一道简单数位dp题。多设一个支点和力矩和然后套板子就做完了。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>usingnamespacestd;#definemapunordered_m......
  • TCP和UDP面试题提问
    @目录TCPUDP总结应用TCP(传输控制协议)和UDP(用户数据报协议)是两种计算机网络通信协议,它们在网络通信中起着不同的作用。TCPTCP是面向连接的协议,它在数据传输之前需要在发送端和接收端建立一条连接。TCP提供可靠的数据传输,它使用确认和重传机制来确保数据的可靠性和完整性。T......
  • P1941-DP【绿】
    题目本身只是一道有些难度的普通dp题,题解中有人说可以把这个看作是背包,我不是这么做的便没细看,感觉能把他联想为背包问题的特例的人的发散思维能力真强。不过倒也没必要,常规做即可,用二维数组即可描述状态,dp[i][j]表示只由前i个横向单位长度组成的游戏中以(i,j)结尾游戏所需的最小游......
  • 数位 DP 做题记录
    数位DP数位DP的常见套路就是记录当前到哪一位,是否抵着上界,转移时枚举当前可以填哪些数,做一遍记忆化搜索。P3413SAC#1-萌数题意:求\([l,r]\)中有多少个数中含有回文子串。思路:如果存在回文子串,那么必然有相邻两位相同或者间隔一位相同,在数位DP时额外记录前2位就可以......
  • 交互杂题选做
    交互杂题选做记录一些自己写过的很有意思的交互题。另外JOISC中有很多有意思的交互题,很值得一做。CF1292ERinandTheUnknownFlower题意:交互题,你要猜一个长为\(n\)的由\(CHO\)构成的字符串,你每次可以询问一个长度为\(t\)的字符串,代价是\(\dfrac{1}{t^2}\),你会得到......