Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
33234 郭澍宇 【J】T3 C++ 运行超时 50 1000 MS 1040 KB 1048 2024-10-04 17:25:24

Tests(5/10):


#include<bits/stdc++.h> #define Max 100000 #define gsy return #define will 0 #define AC ; using namespace std; int dp[100005],w[100005]; int n,q; int main(){ // ios::sync_with_stdio(0); // cin.tie(0); // cout.tie(0); memset(dp,0x3f,sizeof dp); cin>>n>>q ; for(int i = 1;i<=n;i++){ cin>>w[i] ; } dp[n]=w[n]; for(int i = n-1 ; i>=1 ; i--){ w[i]=min(w[i],w[i+1]); dp[i]=w[i]; } for(int i = 2;i<=Max;i++){ for(int j = 1;;j++){ int z=min(Max,i*j); dp[z]=min(dp[z],dp[i]+dp[j]); if(z==Max)break ; } } for(int i = Max - 1 ; i >= 1 ; i --) { dp[i] = min(dp[i] , dp[i + 1]) ; } while(q--){ int x,y; cin>>x>>y; if(x<=y){ cout<<0<<endl; continue; } int l = 1, r = x,ans=x; while (l <= r) { int mid = l + r >> 1; if (x / mid <= y){r = mid - 1;ans=mid;} else l = mid + 1; } cout<<dp[ans]<<endl; } gsy will AC }


测评信息: