P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
说最大不超过.不用高精度,好说
#include <bits/stdc++.h>
using namespace std;
int n,n2,a;
long long a1[10004],a2[10004],sum;
int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin >> n;memset(a1,127,sizeof(a1)),memset(a2,127,sizeof(a2)); //初始化数组至 int 的最大值 ,效率较高for(int i=0;i<n;i++) cin>>a1[i]; //输入数据sort(a1,a1+n);int opt=0, i = 0 , j = 0; //i j 用于定位数组,形同于队列long long tmp=0;for( opt = 1; opt < n; opt++){tmp = a1[i] <a2[j] ? a1[i++] :a2[j++]; //第一次最小值 i++ j++tmp += a1[i] <a2[j] ? a1[i++] :a2[j++]; //第二次最小值a2[n2++]=tmp; //加入第二个数组 //n2 wwwwsum+=tmp;}cout<<sum;return 0;
}
P3817 小A的糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <bits/stdc++.h>
using namespace std;int N;long long tmp,x,sum,a[100005]; // 1005就会RE 原因<=10 0000
int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>N>>x;for(int i=0;i<N;i++) cin>>a[i];for(int i=0;i<N-1;i++){if(a[i]+a[i+1]<=x){continue;}tmp = a[i]-x+a[i+1];if(a[i]>=x) a[i]=x,a[i+1]-=a[i]-x+a[i+1];else{a[i+1] -=a[i]-x+a[i+1];}sum += tmp;}cout<<sum;return 0;
}