首页 > 编程语言 >ccfcsp-2019-12-2回收站选址(c++满分题解)

ccfcsp-2019-12-2回收站选址(c++满分题解)

时间:2024-03-29 19:58:58浏览次数:32  
标签:ccfcsp int 题解 make flag vec pair include 回收站

该题就是考察点的保存以及索引的保存和遍历,看了他的用例说明,我原先以为暴力只能得50分,但是又没有想到别的优化方法,就写了一下暴力,发现居然AC

下面是代码:

#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{
	int n;
	cin>>n;
	vector<pair<int,int>> vec;//存储n个点
	map<pair<int,int>,int> flag;//标志该点存在,后面会用到
	for(int i=0;i<n;++i)
	{
		int a,b;
		cin>>a>>b;
		vec.push_back(make_pair(a,b));
		flag[make_pair(a,b)]=1;
	}
	vector<int> res(5,0);
	for(int i=0;i<n;++i)
	{
		int x=vec[i].first;
		int y=vec[i].second;
		if(flag[make_pair(x+1,y)]==1 &&flag[make_pair(x-1,y)]==1
		&& flag[make_pair(x,y+1)]==1 &&flag[make_pair(x,y-1)]==1)//如果可以建回收站
		{
//			cout<<x<<" "<<y<<endl; 
			int ct=0;//标志回收站的得分情况
			if(flag[make_pair(x+1,y+1)]==1)
				ct++;
			if(flag[make_pair(x+1,y-1)]==1)
				ct++;
			if(flag[make_pair(x-1,y+1)]==1)
				ct++;
			if(flag[make_pair(x-1,y-1)]==1)
				ct++;
			res[ct]++;
		}
	}
	for(int i=0;i<res.size();++i)//输出不同得分的回收站数量
	{
		cout<<res[i]<<endl;
	}
}

下面是得分截图:

如果大家有更好的方法,欢迎评论区讨论。

标签:ccfcsp,int,题解,make,flag,vec,pair,include,回收站
From: https://blog.csdn.net/qq_62942992/article/details/137154858

相关文章

  • atcoder beginner 346 题解
      看到别人的视频讲解 AtCoderBeginnerContest346A至G題讲解bydreamoon C如果用sort写,那么再从小到大遍历也需要写几行#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<cstdbool>#include<string>#include<......
  • P1484 种树 题解
    P1484种树有\(n\)个坑。第\(i\)个坑种树的价值是\(c_i\),相邻坑不能同时种。可以种\(k\)颗树,求最大价值。模拟费用流,建图类似这样:中间两层结点之间有\(7\)条边,表示\(n=7\)的情况。相邻两条边,例如\(1,2\)总流入量为\(1\),\(2,3\)总流出量为\(1\),也不可能出现相......
  • Luogu P6834 梦原 题解
    原题传送门首先考虑如果树的形态确定了之后的情况:如果当前点比爸爸的值大,那么显然爸爸变成\(0\)之后,这个点需要自己被额外操作删除,贡献就是\(a[v]-a[u]\)。类似,如果比爸爸的值小,那么这个点肯定会跟爸爸一起被删除,所以贡献就是\(0\)。综上所述,一个点的贡献是\(max{a[v]-......
  • ICPC2023 杭州 题解
    M-V-DiagramSolution很显然,连续的子序列的一段肯定是包括最左边或最右边的其中一个点Code#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllinf=1ll<<60;intmain(){intt;cin>>t;while(t--){ intn;cin>>n;......
  • [正常题解]Acwing.5308 公路
    ​首先需要理解一个证明:​ 假设我们有三个点,前两个点价格为\(a_1,\a_2\),距离为\(v_1,\v_2\)那么就有式子:\(\frac{a_1\timesv_1}{d}+\frac{a_2\timesv_2}{d}\式①\),和式子\(\frac{a_1\timesv_1}{d}+\frac{a_1\timesv_2}{d}\式子②\)$\rightarrow\frac{1}{d}(......
  • CF1184E1题解
    CF11841E1&blog尽然想让第一条边最大且这条边在最小生成树中,那么这条边就需要尽量晚。但是假如加上一条边\(i\)可以使\(u_1\)和\(v_1\)联通并且第\(w_i\lew_1\)那么我们就会舍弃原本第一条边,使用第\(i\)条边。所以第一条边的比安全一定小于等于所有么满足上述条......
  • 2023年全国青少年信息素养大赛 第9届Python编程挑战赛北京赛区(小学组)复赛试题解析
    2023年全国青少年信息素养大赛第9届Python编程挑战赛北京赛区(小学组)复赛试题解析T1.求余数题目描述:输入一个正整数,输出这个整数除以5的余数。输入描述:输入一行一个正整数输出描述:输出这个整数除以5的余数样例1:输入:12输出:2#示例代码n=int(input())print(n%5)......
  • 【洛谷 P8738】[蓝桥杯 2020 国 C] 天干地支 题解(字符串+数学+模运算)
    [蓝桥杯2020国C]天干地支题目描述古代中国使用天干地支来记录当前的年份。天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。地支一共有十二个,分别为:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ......
  • 【洛谷 P8654】[蓝桥杯 2017 国 C] 合根植物 题解(并查集)
    [蓝桥杯2017国C]合根植物题目描述w星球的一个种植园,被分成m×nm\timesnm×n个小格子(东西方向......
  • 启动应用程序出现FirewallAPI.dll找不到问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个FirewallAPI.dll文件(挑选合适的版本文件)把......