问题标题: emm……

0
1

0
李秋勉
李秋勉
中级守护
中级守护

因为你下载了酷町助手,只要下载360安全卫士,开启木马查杀,就可以删了

0
李秋勉
李秋勉
中级守护
中级守护

因为你下载了酷町助手,只要下载360安全卫士,开启木马查杀,就可以删了

0
陈子明
陈子明
高级光能
高级光能

建议吧酷町编程助手删了!

0
余天泽
余天泽
中级光能
中级光能
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int MAXN=5e5;
LL n;//格子数量
LL d;//原弹跳距离
LL k;//希望的分数
LL x[MAXN+10];//格子 i 的坐标
LL s[MAXN+10];//格子 i 的分数
LL dp[MAXN+10];//格子 i 的最大分数
void init();
bool judge(int);
void solve();
int main(){
init();
solve();
return 0;
}
void init(){
int i;
scanf("%lld%lld%lld",&n,&d,&k);
for(i=1;i<=n;++i){
scanf("%lld%lld",x+i,s+i);
}
}
bool judge(int mid){
memset(dp,-0x7f7f7f7f,sizeof(dp));
dp[0]=0;
int i,j;
LL mind=max(d-mid,1LL);
LL maxd=d+mid;
for(i=1;i<=n;++i){
for(j=i-1;j>=0;--j){
if(x[i]-x[j]>maxd)break;
if(x[i]-x[j]<mind)continue;
dp[i]=max(dp[j]+s[i],dp[i]);//dp
if(dp[i]>=k){
//mid右侧均满足最大分数 ≥k
return true;
}
}
}
return false;//mid左侧均不满足最大分数 ≥k
}
void solve(){
LL l=0,r=2010;//g的可选范围
LL mid;
//二分搜索
while(l!=r){
mid=(l+r)>>1;
//判断答案在mid左侧(true)还是右侧(false)
if(judge(mid)){
r=mid;//左侧搜索
}else{
l=mid+1;//右侧搜索
}
}
if(judge(l)){
printf("%lld",l);
}else{
//搜索完成后未找到g
printf("-1");
}
}

 

0
余天泽
余天泽
中级光能
中级光能
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<climits>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<cctype>
#define MAXA 200
#define MOD 20123
#define INF 0xffffff
 using namespace std;
 typedef long long LL;
 int Nation,Cul,Road,Start,End;
 int G[MAXA][MAXA],d[MAXA],Anti[MAXA][MAXA],Culture[MAXA],v[MAXA];
 int main() {
 //freopen("culture.in","r",stdin);
 //freopen("culture.out","w",stdout);
 scanf("%d %d %d %d %d",&Nation,&Cul,&Road,&Start,&End);
 for(int i=1;i<=Nation;i++)
 scanf("%d",&Culture[i]);
 for(int i=1;i<=Cul;i++)
 for(int j=1;j<=Cul;j++)
 scanf("%d",&Anti[i][j]);
 for(int i=1;i<=Nation;i++)
 for(int j=1;j<=Nation;j++)
 if(i != j)
 G[i][j] = INF;
 //G[Start][Start] = 0;
 for(int i=1;i<=Road;i++) {
 int u,v,d,Marku,Markv;
 scanf("%d %d %d",&u,&v,&d);
 if(!Anti[Culture[v]][Culture[u]]) {
 G[u][v] = d;
 Marku = 1;
 }
 if(!Anti[Culture[u]][Culture[v]]) {
 G[v][u] = d;
 Markv = 1;
 }
 if(Marku == 1)
 for(int k=1;k<=Nation;k++)
 if(u != k &&Culture[u] == Culture[k] && G[u][k] != INF)
 G[u][k] = INF;
 if(Markv == 1)
 for(int k=1;k<=Nation;k++)
 if(v != k && Culture[v] == Culture[k] && G[v][k] != INF)
 G[v][k] = INF;
 Marku = 0;
 Markv = 0;
 }
 for(int k=Start;k<=End;k++)
 for(int i=Start;i<=End;i++)
 for(int j=Start;j<=End;j++)
 G[i][j] = min(G[i][j],G[i][k]+G[k][j]);
 if(G[Start][End] == INF)
 printf("-1");
 else printf("%d",G[Start][End]);
 }

文化

0
贾其礽
贾其礽
资深守护
资深守护

家长守护模式是森么?

我要回答