首页 > 其他分享 >L2-034 口罩发放

L2-034 口罩发放

时间:2024-03-20 19:13:26浏览次数:23  
标签:node 口罩 return int peo L2 str tno 034

破防了,我自己写的只能得5分,测试点0都过不去,并且至今没有找到错误的原因。
等我找到了再回来。
然后看别人的。

#include <bits/stdc++.h>
using namespace std;
struct node {
	string name;
	string tno;
	int state;
	int time;
	int pos;
};
map<string, int> mp;//领取资格
vector<node> v;
vector<pair<string, string>> peo;
set<pair<string, string>> s;
bool check(string s) {
	if (s.size() != 18) return false;
	for (int i = 0; i < s.size(); i++) {
		if (!isdigit(s[i])) return false;
	}
	return true;
}
bool cmp(node n1, node n2) {
	if (n1.time != n2.time) return n1.time < n2.time;
	return n1.pos < n2.pos;
}
int main() {
	int d, p;
	cin >> d >> p;
	for (int i = 1; i <= d; i++) {//第i天
		int t, s;
		cin >> t >> s;//申请数量 口罩数量
		v.clear();
		int hh, mm;
		for (int j = 1; j <= t; j++) {
			node node;
			cin >> node.name >> node.tno >> node.state >> hh;
			cin.get();
			cin >>mm;
			node.time = 60 * hh + mm;
			node.pos = j;
			if (check(node.tno)) {//身份证号符合要求
				string str = node.tno;
				if (!mp[str] || mp[str] + p < i) {
					v.push_back(node);
				}
				if (node.state) {
					peo.push_back({ node.name,node.tno });
				}
			}
		}
		sort(v.begin(), v.end(), cmp);

		//输出当天领到口罩的人
		for (int j = 0; j < v.size(); j++) {
			if (s == 0) break;
			string tno = v[j].tno;
			if (!mp[tno] || mp[tno] + p < i) {
				printf("%s %s\n", v[j].name.c_str(), v[j].tno.c_str());
				mp[tno] = i;
				s--;
			}
		}
	}
	for (int i = 0; i < peo.size(); i++) {
		if (!s.count(peo[i])) {
			printf("%s %s\n", peo[i].first.c_str(), peo[i].second.c_str());
			s.insert(peo[i]);
		}
	}
	return 0;
}

博客参考: https://blog.csdn.net/qq_45901251/article/details/124317933

标签:node,口罩,return,int,peo,L2,str,tno,034
From: https://www.cnblogs.com/chengyiyuki/p/18085873

相关文章

  • ptaL2-008manachar做法
    之前考虑过如果输入样例很大怎么办,但是没有细想,今天看了看manachar,懊悔如果这个题样例增大一些变成L330分就好了hh,相比于洛谷上的模板题,这个题唯一不一样的就是有空格,所以不能再用char数组来保存,改用string来存储,C++中的getline函数前几天刚了解到正好也派上用场了constin......
  • Html2canvas——图片空白的几种排查解决方案
    问题:用html2canvas生成画布图片,再转成pdf。生成图片时内容结构里的图片显示空白。解决:首先服务器设置图片允许跨域,如阿里云腾讯云配置跨域规则。其次图片设置crossOrigin=“anonymous”,并且拿到图片地址加随机参数如src+‘?v=’+Math.random()防止使用缓存,再者html2canvas......
  • L2-032 彩虹瓶
    纯模拟,一次就AC了。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;vector<int>huoja;//货架queue<int>order;//发货顺序intmain(){ intn,m,k;//颜色数量货架容量发货顺序 cin>>n>>m>>k; while(k--){ h......
  • L2-030 冰岛人
    费解啊。"所谓“五代以内无公共祖先”是指两人的公共祖先(如果存在的话)必须比任何一方的曾祖父辈分高。"也就是这个祖先出现在任意一方的五代中,都认为是近亲。只有他是A的五代之外并且是B的五代之外,才认为不是近亲。#include<bits/stdc++.h>usingnamespacestd;map<string,......
  • L2-029 特立独行的幸福
    看其他大佬的。10,13这些是幸福数,在开始会设置为特立独行的幸福数,但是他们并不是特立独行而是其他数字变换而来的,所以在设置那个数字的时候10,13会被修正为普通的幸福数。#include<bits/stdc++.h>usingnamespacestd;intvisited[10010];//记录那些是幸福数intrecord[1001......
  • L2-028 秀恩爱分得快
    测试点会出现-0这种,直接导致无法使用int类型接收编号,因为无从判断性别,因此只能用string类型。并且需要使用sex来记录当前是男性还是女性,只有对方是异性的时候,亲密度才有意义。#include<bits/stdc++.h>usingnamespacestd;intp[1010][510],k[1010],sex[1010];doublereco......
  • L2-026 小字辈
    第一眼想到的是BFS,然后就用BFS,个人感觉还是有一丢丢麻烦。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;#definelllonglongvector<vector<int>>vec;intmain(){ intn; cin>>n; vec.resize(n+10); introot=0; for(in......
  • L2-025 分而治之
    如果一个城市未被炸毁,那如果他可达的其他城市也未被炸毁,说明方案不可行。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;#definelllonglongvector<vector<int>>vec;//邻接表intmain(){ intn,m; cin>>n>>m; vec.resize(n+10......
  • L2-024 部落
    注意merge的时候如果p1和p2相等及时返回否则死循环了,代码有问题而不是算法超时。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintparent[10010],deep[10010];intgetf(intx){ inty=x; while(parent[y]!=-......
  • L2-023 图着色问题
    老太太钻被窝,给爷整笑了。测试点2:颜色只能是k种,大于小于都过不去。#include<bits/stdc++.h>usingnamespacestd;intedges[503][503];intcolor[503];intmain(){ intv,e,k; cin>>v>>e>>k; for(inti=0;i<e;i++){ inta,b; cin>>a......