拼多多笔试6.16

public class Main2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int t=scanner.nextInt();
        while(t-->0){
            int N=scanner.nextInt();
            int[] prices = new int[N+1];
            for(int i=1;i<=N;i++) {
                prices[i]=scanner.nextInt();
            }
            int[][] dp=new int[N+1][N+1];
            int[] chances=new int[N+2];
            for(int i=0;i<=N;i++) {
                Arrays.fill(dp[i],Integer.MAX_VALUE-100);
            }
            dp[0][0]=0;
            int sum=0;
            for(int i=1;i<=N;i++) {
                sum+=prices[i];
                if(chances[i]==0)
                chances[i]=chances[i-1];
                if(sum>=100){
                    chances[i+1]=chances[i]+1;
                    sum-=100;
                }
            }
            for(int i=1;i<=N;i++) {
                for(int j=chances[i];j>=0;j--){
                    dp[i][j] = dp[i-1][j]+prices[i];
                    if(j-1>=0){
                        dp[i][j] = Math.min(dp[i][j], dp[i-1][j-1]);
                    }
                }
                if(chances[i]!=chances[i-1])
                    dp[i][chances[i]] = Math.min(dp[i][chances[i]], dp[i-1][chances[i-1]]);
            }
            int ans=dp[N][chances[N]];
            System.out.println(ans);


        }
    }
}



全部评论
哥们 咋理解这道题目呢
点赞 回复 分享
发布于 2024-06-17 22:11 安徽

相关推荐

Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务