https://www.acwing.com/activity/content/competition/problem_list/1779/
4416. 缺少的数【签到】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,t;
int a[N];
map<int,int>mp;
int main(void)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],mp[a[i]]++;
int ans=1;
for(int i=1;i<=n;i++) if(mp[i]==0) ans=i;
cout<<ans;
return 0;
}
4417. 选区间【思维】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5+10;
int n,m,a[N],b[N];
int main(void)
{
int l1=1e9,r1=-1e9;
int l2=-1e9,r2=1e9;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
l1=min(l1,b[i]);
l2=max(l2,a[i]);
}
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
r1=max(r1,a[i]);
r2=min(r2,b[i]);
}
cout<<max({
r1-l1,l2-r2,0});
return 0;
}
4418. 选元素【DP】
#include<bits/stdc++.h>
using namespace std;
const int N=210;
typedef long long int LL;
LL f[N][N],a[N];//f[i][j] 前i个里选j个,且选i
int main(void)
{
int n,k,m; cin>>n>>k>>m;
memset(f,-0x3f,sizeof f);
f[0][0]=0;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int u=max(0,i-k);u<i;u++)
f[i][j]=max(f[i][j],f[u][j-1]+a[i]);
}
}
LL res=-1;
for(int i=n-k+1;i<=n;i++) res=max(res,f[i][m]);
cout<<res;
return 0;
}