首页 > 其他分享 >美丽方格

美丽方格

时间:2024-07-05 18:13:25浏览次数:1  
标签:cnt ch int nd 枚举 方格 美丽

题目描述

你手里拿着很多字母牌,在一个方格棋盘上下棋,棋盘的中心是坐标(0,0),你把字母牌在棋盘上摆放,你规定一个美丽的方格是指中心也是坐标(0,0),且方格中不存在相同字母的牌,给你一个摆放完的棋盘,问是美丽方格中最多多少张牌?

思路

  • 这题第一反应是枚举正方形边长,为了方便,枚举的数是正方形边长一半(假设这个数是k),这样判断一个点是否在正方形内时,就可以写abs(x)<=k && abs(y)<=k
  • 但是枚举会T,我们就可以用二分答案代替枚举,就是正解

AC啦

#include<bits/stdc++.h>
#define int long long
using namespace std;
struct nd{
    int x,y;
    char ch;
    nd(int _x,int _y,char _ch){
        x=_x;
        y=_y;
        ch=_ch;
    }
    nd(){
        x=y=0;
        ch='\0';
    }
};
nd a[10000005];
int n;
int cnt[26]={};
bool check(int x){
    memset(cnt,0,sizeof cnt);
    for(int i=1;i<=n;i++)
        if(abs(a[i].x)<=x && abs(a[i].y)<=x){
            if(cnt[a[i].ch-'a']) return false;
            cnt[a[i].ch-'a']++;
        }
    return true;
}
int Find(){
    int l=0,r=10000000;
    int ans=-1;
    while(l<=r){
        int mid=(l+r)/2;
        if(check(mid)){
            l=mid+1;
           	ans=max(ans,mid);
        }else
            r=mid-1;
    }
    return ans;
}
signed main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        int x,b;
        char ch;
        cin>>x>>b;
        cin>>ch;
        while(ch==' ')
            cin>>ch;
        a[i]=nd(x,b,ch);
    }
    int sq=Find();
    int cnt=0;
    for(int i=1;i<=n;i++)
        if(abs(a[i].x)<=sq && abs(a[i].y)<=sq)
            cnt++;
    cout<<cnt;
    return 0;
}

标签:cnt,ch,int,nd,枚举,方格,美丽
From: https://www.cnblogs.com/algorithm-hu/p/18286364

相关文章

  • 美丽世界(黑龙江伊春金山鹿宛、佳木斯黑瞎子岛)
          ......
  • 力扣每日一题 美丽下标对的数目 枚举 哈希
    Problem:2748.美丽下标对的数目......
  • 2663. 字典序最小的美丽字符串
    题目如果一个字符串满足以下条件,则称其为美丽字符串:它由英语小写字母表的前k个字母组成。它不包含任何长度为2或更长的回文子字符串。给你一个长度为n的美丽字符串s和一个正整数k。请你找出并返回一个长度为n的美丽字符串,该字符串还满足:在字典序大于s的所......
  • 美丽下标对的数目(Lc2748)——计数
    给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0≤i<j<nums.length ,如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ,则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。返回 nums 中 美丽下标对 的总数目。对......
  • 2748. 美丽下标对的数目(Rust暴力枚举)
    题目给你一个下标从0开始的整数数组nums。如果下标对i、j满足0≤i<j<nums.length,如果nums[i]的第一个数字和nums[j]的最后一个数字互质,则认为nums[i]和nums[j]是一组美丽下标对。返回nums中美丽下标对的总数目。对于两个整数x和y,如......
  • (nice!!!)LeetCode 2865. 美丽塔 I(数组、单调栈)
    2865.美丽塔I思路:方法一,时间复杂度0(n^2)。枚举每一个点i作为当前山脉数组的最高点。然后我们通过预处理遍历其前面和后面,来更新两个数组f1、f2。数组f1[i]:表示在满足非递减的情况下,区间0~i,以点i的高度heighs[i]为最高点所能形成的最大高度和。数组f2[i]:表示在满足非......
  • 7-3 sdut-C语言实验-骨牌铺方格
    7-3sdut-C语言实验-骨牌铺方格分数20全屏浏览切换布局作者 马新娟单位 山东理工大学斐波那契数列(Fibonaccisequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(LeonardoFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,很多题目由此衍生而来,骨牌铺方格便是......
  • 乡村振兴的乡村生态文明建设:加强乡村生态环境保护,推进乡村绿色发展,打造生态宜居的美丽
    目录一、引言二、乡村生态环境保护的必要性三、加强乡村生态环境保护的措施(一)完善法律法规,强化制度保障(二)加强宣传教育,提高环保意识(三)推广生态农业,减少农业面源污染(四)加强水源保护,保障饮水安全(五)开展生态修复,恢复乡村生态功能四、推进乡村绿色发展的路径(一)发展绿色产......
  • 乡村振兴的乡村公共服务提升:提升乡村公共服务水平,满足农民多样化需求,构建幸福美好的美
    目录一、引言二、乡村公共服务提升的必要性(一)满足农民多样化需求(二)促进乡村经济发展(三)构建幸福美好的美丽乡村三、乡村公共服务面临的挑战(一)基础设施薄弱(二)公共服务资源不足(三)公共服务体系不完善四、乡村公共服务提升的策略(一)加强基础设施建设(二)优化公共服务资源配......
  • PC方格音乐v1.5.4无损音乐播放 – 一款免费无损音乐播放器
    软件介绍方格音乐(魔音Morin电脑版)是一款免费无损音乐播放器及付费歌曲无损音乐免费下载软件.方格音乐播放器采用简洁的风格设计,可以免费在线试听及下载付费歌曲,版权音乐,无损音质歌曲.方格音乐电脑版免费听歌神器支持歌曲解析功能,第三方歌单导入,歌词频谱功能,下载音乐时......