首页 > 其他分享 >1619D New Year‘s Problem

1619D New Year‘s Problem

时间:2024-06-19 21:02:13浏览次数:18  
标签:return 商店 1619D mid int 题目 New Problem check

题目链接:New Year's Problem

从题目的描述中很容易看出来这是一道二分的题目,那么怎么去考虑呢?首先最多选n-1个商店,那也就是说至少有一个商店要选两个人或以上,因此我们的check函数可以去一个个枚举商店,看看是否有一个商店满足两个人,然后每个人选的价值都要大于mid。

代码附上:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5+5;
int n,m;
vector<int>a[N];

bool check(int mid){
	
	for(int i=0;i<n;i++){
		int t=1;
		for(int j=1;j<=m;j++){
			if(a[j][i]>=mid)t=0;
		}
		if(t){
			return false;
		}
	}

	for(int i=1;i<=m;i++){
		int cnt=0;
		for(int j=0;j<n;j++){
			if(a[i][j]>=mid)cnt++;
		}
		if(cnt>=2)return true;
	}
	
	return false;

}

void solve(){
	cin>>m>>n;
	for(int i=1;i<=m;i++)a[i].clear();
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			int x;cin>>x;
			a[i].push_back(x);
		}
	}

	int l=1,r=1e9+5;
	while(l<r){
		int mid=l+r+1>>1;
		if(check(mid))l=mid;
		else r=mid-1;
	}

	cout<<l<<"\n";
	
}

signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int t;cin>>t;
	while(t--){
		solve();
	}

	return 0;
}

标签:return,商店,1619D,mid,int,题目,New,Problem,check
From: https://blog.csdn.net/2302_81761369/article/details/139812826

相关文章

  • 【New Relic】给基于.NET Framework 4.0 的 exe 程序安装New Relic
    由于.NETFramework4.0是比较古老的版本,只有NewRelic7.0以下的版本才会支持.NETFramework4.0的引用程序。 Technicalsupportfor.NETFramework4.0orlower 你可以参考这个官方InstallNewRelictoMonitoryourApp的文档。 1.创建NewRelic账号创建一个Ne......
  • 解锁Java高效并发:newFixedThreadPool深度剖析与实战
    1.引言在Java的并发编程中,线程池是一个重要的概念。而newFixedThreadPool作为Java标准库java.util.concurrent中Executors类的一个静态方法,为开发者提供了一个固定大小的线程池实现。本文旨在深入剖析newFixedThreadPool的原理、源码实现以及最佳实践,更好地理解和应用它。......
  • C# 利用 System.Guid.NewGuid() 生成卡密CDK
    GUID:全球唯一标识符(共32位,其中每个x是0-9或a-f范围内的一个十六进制的数字)格式:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx例如:0d9d526e-77c4-46bc-9955-6c0e95bc176e为什么要使用GUID?世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在拥有多个节点......
  • 【Hachker News】如果你不需要钱,你会干什么?
    HachkerNews上的一个问题,标题是“如果你不需要钱,你会做什么?”回答摘要问题链接:Whatwouldyouspendyourtimeworkingonifyoudidn’tneedmoney?A1:我会把时间投入到城市周围的农村地区,建造高质量的住宅,并以成本价出售。购买我的第一套房是我做过的最好也是最坏......
  • 洛谷P1601 A+B Problem(高精)
    #include<iostream>#include<string>#include<cstring>#include<cstdio>usingnamespacestd;constintN=1005;structbign{intlen,s[N];bign(){memset(s,0,sizeof(s));len=1;}bign(intnum){*this=num;}......
  • D. "a" String Problem
    原题链接一句话题解由于t必须要包含非a字符,所以假如t包含前k个非a字符,那么s所包含的非a字符数量一定是k的倍数实施遍历t能包含几个非a字符,然后再算有几种填充a的方法复杂度\(logn·n\)之所以有logn是因为遍历s包含的非a字符数量的因子code#include<bits/stdc++.h>using......
  • Codeforces Problem 1980B Choosing cubes(基本排序)
    timelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputDmitryhas n......
  • C&C++内存管理【new和delete操作符的详细分析】【常见面试题】
    C/C++内存管理1.C/C++内存分布我们先来看一段代码,来了解一下C/C++中的数据内存分布。#include<stdlib.h>intglobalVar=1;staticintstaticGlobalVar=1;//比globalVar还要先销毁,同一个文件下后定义的先析构//全局变量存在数据段(静态区)但是链接方式和静......
  • C++Primer Plus 第12章 类和动态内存分配 12.10编程练习第2题new,delete的指向深度拷
    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:本章练习第2题涉及标准函数及关键词toupper,tolower(),strcpy_s(),strcat_s(),strcmp,strlen(),new[],delete[].实现如下效果输出应与下面相似:Pleaseenteryourname:FrettaFarboMynameis......
  • 深入理解 C++ 动态内存管理:new vs malloc
    概述new/delete 是C++的关键字,需要编译器支持。malloc/free 是库函数,需要头文件支持。使用 new 申请内存分配时无需指定内存块大小,编译器会自动计算。而 malloc 需要明确指定所需内存的大小。new 会返回对象类型的指针,类型安全。而 malloc 返回 void*,需要进行强制......