最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

跳跳

IT圈 admin 33浏览 0评论

跳跳

P4995 跳跳! - 洛谷 | 计算机科学教育新生态 (luogu)

解题思路
1.为了耗费尽可能多的体力,先从地面跳到最高的石头上
2.从最高的石头跳到最低的石头,再跳到第二高的石头上......以此类推,就可以消耗尽可能多的体力值 
3.输出耗费的体力值

注意:消耗的体力值可能超过int的范围 

代码

#include<bits/stdc++.h>
using namespace std;
int a[305];//创建数组 
int main()
{int n,num=1;long long sum=0;bool flag=1;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];//输入石头的高度 }sort(a+1,a+n+1);//给石头的高度排序 sum+=a[n]*a[n];//从地面跳到最高的石头上 while(num<n)//石头跳完了{sum+=(a[n]-a[num])*(a[n]-a[num]);//体力值if(flag==1){n--;flag=0;}//在高度较低的石头上 else{num++;flag=1;}//在高度较高的石头上 }cout<<sum;//输出耗费的体力值 return 0;
}

跳跳

P4995 跳跳! - 洛谷 | 计算机科学教育新生态 (luogu)

解题思路
1.为了耗费尽可能多的体力,先从地面跳到最高的石头上
2.从最高的石头跳到最低的石头,再跳到第二高的石头上......以此类推,就可以消耗尽可能多的体力值 
3.输出耗费的体力值

注意:消耗的体力值可能超过int的范围 

代码

#include<bits/stdc++.h>
using namespace std;
int a[305];//创建数组 
int main()
{int n,num=1;long long sum=0;bool flag=1;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];//输入石头的高度 }sort(a+1,a+n+1);//给石头的高度排序 sum+=a[n]*a[n];//从地面跳到最高的石头上 while(num<n)//石头跳完了{sum+=(a[n]-a[num])*(a[n]-a[num]);//体力值if(flag==1){n--;flag=0;}//在高度较低的石头上 else{num++;flag=1;}//在高度较高的石头上 }cout<<sum;//输出耗费的体力值 return 0;
}

发布评论

评论列表 (0)

  1. 暂无评论