首页 > 其他分享 >二 562. 壁画 (前缀和)

二 562. 壁画 (前缀和)

时间:2024-03-25 16:46:00浏览次数:25  
标签:前缀 int 美观 sum mid 壁画 562

562. 壁画 (前缀和)
image


思路:壁画最终应是长度为mid=(N+1)/2的连续一段,而被摧毁的墙则在两边,故以终点为标志从mid遍历到N,确定最大的一段美观总分,同时因为多次计算一段美观评分耗时多,可提前计算出美观评分的前缀和,然后对应的美观总分=sum[i]-sum[i - mid]。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int n;
        String line = "";
        char[] walls;
        int[] sum;
        for (int cases = 1; cases <= T; cases++) {
            n = sc.nextInt();
            sum = new int[n + 2];
            sc.nextLine();
            line = sc.nextLine();
            for (int i = 1; i <= n; i++) {
                sum[i] = sum[i - 1] + line.charAt(i - 1) - '0';
            }
            int res = 0, mid = n + 1 >> 1;
            for (int i = mid; i <= n; i++) {
                res = Math.max(res, sum[i] - sum[i - mid]);
            }
            System.out.println("Case #" + cases + ": " + res);
        }
    }
}

标签:前缀,int,美观,sum,mid,壁画,562
From: https://www.cnblogs.com/he0707/p/18094746/lanqiaobei02

相关文章

  • redis哨兵 ,redis集群 缓存 以及某些问题: 最左前缀原则,,celery架构
    Redis哨兵#主从复制存在的问题:#1主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master-哨兵解决#2主从复制,只能主写数据,所以写能力和存储能力有限-集群来解决#搭建哨兵的目的一旦一主多从的架构,主库发生故障,能够自动转移一......
  • 青蛙过河(前缀+二分)
    1importjava.util.*;23publicclassMain{4publicstaticvoidmain(String[]args){5Scannerscanner=newScanner(System.in);6intn=scanner.nextInt();7longx=scanner.nextLong();8//前缀和9lo......
  • 【动态规划】【同余前缀和】【多重背包】[推荐]2902. 和带限制的子多重集合的数目
    本文涉及知识点动态规划汇总C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例包括课程视频C++算法:滑动窗口总结多重背包LeetCode2902.和带限制的子多重集合的数目给你一个下标从0开始的非负整数数组nums和两个整数l和r。请你返回nums中子多重集......
  • 前缀和与差分
    ​ 前缀和就是一直累加即可,可以用于非常极速\(O(1)\)的区间查询。​ 差分则是取每两个相邻数字的差值,可以用于非常急速\(O(1)\)的区间修改,当然仅限加减。如果是乘除什么的建议去线段树​ 差分做一次前缀和可以得到原数组,原数组再做一次前缀和就是前缀和......算了文字太绕了看下......
  • 14. 最长公共前缀c
    booljudge(char*s1,char*s2,intn){for(inti=0;i<n;i++){if(s1[i]!=s2[i])returnfalse;}returntrue;}char*longestCommonPrefix(char**strs,intstrsSize){intcount=strlen(strs[0]);for(inti=1;i<strsSize;i++){......
  • 前缀树问题
    图前缀树思路来源一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到笔记内容问题来源:力扣208.实现Trie(前缀树)问题描述:Trie(发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用......
  • 浅记高维前缀和
    考虑如下问题:记\(y\subsetx\leftrightarrowx\&y=y\)。若\(x\subsety\),称\(x\)为\(y\)的一个子集,\(y\)为\(x\)的一个超集。给定数组\(f\),求数组\(g\)。其中\(g_x=\sum_{y\subsetx}{f_y}\)。设\(f\)中最大的数二进制下共有\(n\)位。如果直接枚举子集的话,时......
  • 二维前缀和&二维差分(超详细,python版,其他语言也很轻松能看懂)
    上一篇文章讲解了一维前缀和&一维差分,本篇进阶为二维。二维前缀和:二维前缀和跟一维前缀和求法相同,这里直接上例子。数组a=[[1,2,2,1],[3,2,2,1],[1,1,1,1]]a数组如图:则数组a的前缀和为:数组b[[1,3,5,6],[4,8,12,14],[5,10,15,18]]b数组如图:前缀和递推公式为b[i][......
  • abc250E 判断集合前缀是否相等
    给定数组A[n]和B[n],有Q组询问,每次给出一组(x,y),问A中前x个元素构成的集合是否与B中前y个元素构成的集合相等?1<=n,q<=2e5;1<=a[i],b[i]<=1e9;1<=x[i],y[i]<=n可以用乘法和异或来实现对集合的哈希,另外需要借助一个set来避免重复元素对哈希结果的影响。#include<bits/stdc++.h>......
  • mysql索引(索引失效,遵循最左前缀,使用1.全值匹配 2.覆盖索引,失效:索引加函数,范围查询右边
    1.遵循联合索引最左列原则当表中创建了一个联合索引idx_name_age_position案例演示1.当我们在执行sql语句:以name为where条件时,我们可以用到索引EXPLAINSELECT*FROMemployeesWHEREname='LiLei';2.当我们在执行sql语句:以age为where条件时,索引就会失效......