首页 > 其他分享 >CF549B Looksery Party

CF549B Looksery Party

时间:2023-10-16 18:22:47浏览次数:24  
标签:typedef CF549B const int long Looksery Party include define

这些题都是上周五写的了,周末两天因为比赛都没来得及写博客,只能到周一来补一补

这题做法很简单,考虑如果当前状态中\(\{a_i\}\)不含有\(0\)的话就已经得到一组合法解了

否则我们找到某个\(a_i=0\)的点,钦定让\(i\)这个人去派对即可,这样一定可以满足\(i\)这个人的条件,同时更新带来的影响即可

考虑这样做的正确性,因为每次会找出至少一个人使得其满足要求,而所有\(a_i\)的取值一共有\(n+1\)种,因此一定可以找出一组解

#include<cstdio>
#include<iostream>
#include<utility>
#include<vector>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
#include<set>
#include<array>
#include<random>
#include<bitset>
#include<ctime>
#include<limits.h>
#include<assert.h>
#include<unordered_set>
#include<unordered_map>
#define RI register int
#define CI const int&
#define mp make_pair
#define fi first
#define se second
#define Tp template <typename T>
using namespace std;
typedef long long LL;
typedef long double LDB;
typedef unsigned long long u64;
typedef __int128 i128;
typedef pair <int,int> pi;
typedef vector <int> VI;
typedef array <int,3> tri;
const int N=105;
int n,a[N]; char s[N][N]; vector <int> ans;
int main()
{
	//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout);
	RI i,j; for (scanf("%d",&n),i=1;i<=n;++i) scanf("%s",s[i]+1);
	for (i=1;i<=n;++i) scanf("%d",&a[i]);
	auto find_zero=[&](void)
	{
		for (i=1;i<=n;++i) if (a[i]==0) return i; return 0;
	};
	int pos; while (pos=find_zero())
	for (ans.push_back(pos),i=1;i<=n;++i) if (s[pos][i]=='1') --a[i];
	printf("%d\n",ans.size()); for (auto x:ans) printf("%d ",x);
	return 0;
}

标签:typedef,CF549B,const,int,long,Looksery,Party,include,define
From: https://www.cnblogs.com/cjjsb/p/17768047.html

相关文章

  • CF713E Sonya Partymaker
    其实做题可以先算法导向一下的。比如看到显著特征:【最大值最小】,我们第一反应还是应该为二分答案转判定的。考虑二分答案\(d\),此时转化为了,对于每个人\(i\),选择一个朝向左/右,向该朝向覆盖\(d\)的距离,能否将整个环全部覆盖。如果不是环的话,很lantern啊!考虑序列情况,设\(dp......
  • CF906C Party
    CF906CParty洛谷:CF906CPartyCodeforces:CF906CPartyProblem有\(n\)个人,给定他们的初始认识情况,每次操作可以选择一个人,让他当前认识的所有的人都相互认识。问至少操作几次使得所有人都相互认识,并给出任意合法且次数最少的操作方案。保证操作方案存在。Solution\(n\le......
  • 【3rd_Party】format() 处理一些常见的格式化解决方案
    C++20引入了新的format()函数,该函数以字符串形式返回参数的格式化表示。format()使用python风格的格式化字符串,具有简洁的语法、类型安全,以及出色的性能。format()函数接受一个格式字符串和一个模板形参包作为参数:template<class...Args>stringformat(conststring......
  • D1. Candy Party (Easy Version)
    D1.CandyParty(EasyVersion)Thisistheeasyversionoftheproblem.Theonlydifferenceisthatinthisversioneveryonemustgivecandiestoexactlyonepersonandreceivecandiesfromexactlyoneperson.Notethatasubmissioncannotpassbothversi......
  • 【3rd Party】Cpp 中使用 Protobuf
    前置条件:【Protoc】VS2019(VS平台)使用CMake编译安装、使用Protobuf库【ToolChains】CLion(VS2019)+CMake+Vcpkg的使用ProtoBuf的定义和描述ProtocolBuffers是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Pro......
  • SAP UI5 应用里 /sap/ui/thirdparty/datajs.js 的作用
    SAPUI5是一个基于JavaScript的用户界面技术,用于构建企业级应用程序。它是一个成熟的开源框架,由SAP开发,致力于提供高质量、可扩展和易于维护的Web应用程序。SAPUI5应用程序使用一系列技术和库,其中之一就是/sap/ui/thirdparty/datajs.js。在本文中,我们将详细讨论datajs.......
  • Looksery Cup 2015-H. Degenerate Matrix(浮点数二分)
    原题链接H.DegenerateMatrixtimelimitpertestmemorylimitpertestinputoutputdeterminant ofamatrix 2 × 2degeneratenorm ||A|| ofamatrix AYouaregivenamatrix .Consideranydegeneratemat......
  • HDU 5437 Alisha’s Party(优先队列模拟)
    思路:题目比较好懂的模拟题,用一个优先队列即可     模拟的时候要注意最后还会再开一次门,把剩下的人全部放进来,开门的时间并不一定是递增的,要自己排个序,还有就是要注意开门的时候是25这种数据,就是到第二个人到了开门,然后可以放5个人进来,这样不处理的话会RE#include<bits/s......
  • 多方安全计算Secure Multi-Party Computation(SMPC)学习笔记
    引言随着数字化时代的到来,数据的价值变得前所未有的重要。然而,随之而来的是对数据隐私和安全的日益关注。个人和组织都希望能够利用敏感数据进行有益的分析和合作,但又不希望将这些数据暴露给其他人。在这种情况下,安全多方计算(SMPC)崭露头角。SMPC是一种创新的加密技术,它允许多个参与......
  • hdu:Party(2-SAT)
    ProblemDescription有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n个人同时列席?Inputn:表示有n对夫妻被邀请(n<=1000)m:表......