首页 > 其他分享 >《看了受制了》第二十天,6道题,合计90道题

《看了受制了》第二十天,6道题,合计90道题

时间:2023-09-18 21:23:39浏览次数:103  
标签:道题 curr 受制 int ll long ++ 90 include

2023年9月18日

今天上午写了Atcoder的翻译,以后对于我这种菜鸡来说,多多少少有点用了。前两个题是贪心,第三个是BFS

Acwing908 最大不相交区间数量

题目理解

  1. 全部按右端点进行排序
  2. 然后如果下一个点的左,比我的右端点还大,那么就肯定不在一个区间
  3. 然后更新目前的右端点即可

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
#define x first
#define y second
using namespace std;
typedef long long ll;

const int N = 1e5 + 7;
pair<ll, ll> q[N];

int n;


int main()
{
	cin >> n;
	for(int i = 0; i < n ; i++)
		cin >> q[i].y >> q[i].x;
	
	sort(q, q + n);
	
	int res = 1;
	ll point = q[0].x;
	for(int i = 1; i < n; i++)
	{
		if(q[i].y > point)
		{
			res++;
			point = q[i].x; 
		}
	}
	
	cout << res;
	return 0;
}

AcWing905 区间选点

题目理解

  1. 以右端点排序
  2. 每次选右端点,如果没被覆盖就要+1,并且更新端点为右端点
  3. 不然的就不用变了

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#include<map>
#define x first
#define y second
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;


pair<ll, ll> p[N];
int n;

int main()
{
    cin >> n;
    
    for(int i = 0; i < n; i++)
        cin >> p[i].y >> p[i].x;
    
    sort(p, p + n);
    
    int res = 1;
    int point = p[0].x;
    for(int i = 1; i < n; i++)
    {
        if(point <= p[i].x && point >= p[i].y)
            continue;
        else
        {
            res++;
            point = p[i].x;
        }
    }
    
    cout << res;
    
    return 0;
}

AcWing845 八数码

题目理解

给出九宫格,然后求如何通过最小的操作步数来得到最后的12345678x
通过以下几步得到:

  1. 我们可以把每一个状态转为一个字符串存储。
  2. 把整个问题看成权值为1的最短路。只不过不是坐标,而是每一步的状态。
  3. 用map来存每一个状态的距离,用队列来存字符串(状态)进行bfs即可。

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
using namespace std;

typedef long long ll;
const int N = 1e5;

char g[5][5];

int bfs()
{
    unordered_map<string, int> mp;
    queue<string> q;
    
	int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1};
	string s = "";
	
	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++)
			s += g[i][j];
	
	q.push(s);
	mp[s] = 0;

	while(q.size())
	{
		string curr = q.front();
		q.pop();
		
		if(curr == "12345678x")
		    return mp[curr];
		
		int x, y;
		for(int i = 0; i < 9; i++)
			if(curr[i] == 'x')
				x = i / 3, y = i % 3;
		int d = mp[curr];
		
		for(int i = 0; i < 4; i++)
		{
			int a = x + dx[i], b = y + dy[i];
			if(a < 0 || a >= 3 || b >= 3 || b < 0)	continue;
			

			swap(curr[x * 3 + y], curr[a * 3 + b]);
			
			if(!mp.count(curr))
			{
			   mp[curr] = d + 1;
			   q.push(curr); 
			}
			
			swap(curr[x * 3 + y], curr[a * 3 + b]);
		}
		
	}	
	return -1;
}

int main()
{
	int x, y;
	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++)
		{
			cin >> g[i][j];
			if(g[i][j] == 'x')
				x = i, y = j;
		}
	
	cout << bfs();

	return 0;
}

AtCoder ABC042 A

题目理解

只要5出现两次,7出现一次即可

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
using namespace std;

typedef long long ll;

int cnt[11];

int main()
{
	ll a, b, c;
	
	cin >> a >> b >> c;
	cnt[a]++;
	cnt[b]++;
	cnt[c]++;
	
	if(cnt[5] == 2 && cnt[7] == 1)
		cout << "YES";
	else
		cout << "NO";
	
		
	return 0;
}

AtCoder ABC042 B

题目理解

对字符串,排序后输出即可,因为每个字符串都要输出。那么保证每一个的开头是最小的顺序输出就是字典序最小了。

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
using namespace std;

typedef long long ll;

vector<string> v;
ll n, m;
int main()
{
	cin >> n >> m;
	
	for(int i = 1; i <= n; i++)
	{
		string s;
		cin >> s;
		v.push_back(s);
	}
	
	sort(v.begin(), v.end());
	
	for(int i = 0; i < v.size(); i++)
		cout << v[i];
		
	return 0;
}

AtCoder ABC042 C

题目理解

这个题目数据范围很小,我们暴力枚举从n开始的每一个答案即可。判断里面是否存在不喜欢的数。

代码实现

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<map>
using namespace std;

typedef long long ll;

bool st[11];
ll n, k;
vector<int> a;
string s;

bool check(ll k)
{
	while(k)
	{
		int t = k % 10;
		if(st[t])
			return true;
			
		k /= 10;
	}
	return false;
}


int main()
{
	cin >> n >> k;
	
	for(int i = 1; i <= k; i++)
	{
		int b;
		cin >> b;
		st[b] = true;
	}
	
	while(check(n))
		n++;
		
	cout << n;
	
	
	return 0;
}

标签:道题,curr,受制,int,ll,long,++,90,include
From: https://www.cnblogs.com/wxzcch/p/17713077.html

相关文章

  • 90%的EMC问题是由电缆造成的
    https://zhuanlan.zhihu.com/p/555723943?utm_id=0 电缆布线之所以产生各种电磁干扰问题,其主要有以下几个原因:1电缆本身是一根高效的接收天线,能够接收到空间的电磁干扰,将干扰能量传进设备电路,造成干扰;2电缆是一根高效的辐射天线,能够将电路中的干扰辐射到空间,造成辐射发射超......
  • 《看了受制了》第十九天,7道题,合计84道题
    2023年9月17日今天晚上打了牛客的周赛。题目不是很难的题目,哎,最后一题是位运算,不会啊。。。异或和。。今晚还发现了一个up主,同是21级,大二摘金,我大二哎。每次都会感到世界的层次,认识到自己的弱小。。。而且也发现自己的一些观念上的错误。牛客周赛12小美种树题目理解这个题和......
  • 《看了受制了》第十八天,3道题,合计77道题
    2023年9月16日今天因为acwing题简单,第一次正式AKACWING5149简单计算题目理解真的很简单,就是循环代码实现#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intmain(){intT;cin>>T;while(T--){int......
  • GYM104090A Modulo Ruins the Legend - exgcd -
    题目链接:https://codeforces.com/gym/104090/problem/A题解:转化一下发现只需要求满足下式的解:\[ns+\dfrac{n\times(n+1)}{2}d\equivC(\bmodm)\]设\(a=n,b=\dfrac{n(n+1)}{2},p=gcd(a,b)\)即找到一组\((s',d',t')\)使得\(as'+bd'+mt'=C\)考虑\(a......
  • 《看了受制了》第十七天,4道题,合计74道题
    2023年9月15日小白月赛前三题,PAT一题。这个PAT,我怕是读题都有困难啊。中文都读半天。。。。。ACWIGN1494银行排队题目理解这个题目就是模拟。纯模,数字字符串来回转。代码实现#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<queue>us......
  • 微星发布全新Z790及B760系列主板:支持下一代酷睿、Wi-Fi 7
    微星今日正式发布Z790MAX系列和B760M-ATX新品主板,其中包括MEG系列,MPG系列,MAG系列和PRO系列。据悉,Z790和B760主板与英特尔酷睿处理器下一代以及第13代和第12代处理器相适配,在上一代的基础上带来更高的性能加持和全新的外观设计。供电方面,微星Z790MAX系列主板从旗舰MEGZ790G......
  • 【2023潇湘夜雨】LTSC_2021.19044.3448软件选装纯净版(9.15)
    【系统简介】=============================================================1.本次更新母盘来自LTSC_2021.19044.3448。2.增加部分优化方案,手工精简部分较多。3.OS版本号为19044.3448。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.13.0.8》网卡版、运行库......
  • 《看了受制了》第十六天,6道题,合计70道题
    2023年9月14日题目不难,但是有点恶心。今天写的这个是真受制ACWING1478签到签出题目理解这个就是要把时间都转化成秒,然后排序即可。代码实现#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn;pair<int,int>in[12],out[12];stri......
  • GLM-130B 部署 - 8*3090-24G
    官方文档镜像要求A100-40G-8卡硬件配置:软件配置:1.准备由于恒源云暂时缺少硬件资源,此次部署使用8*3090-24G配置(需要量化int8):注意镜像选择,pytorch版本选择1.13,不要选择2.0,2.0会产生不兼容的情况。同时需要注意扩容,否则模型存放不够空间创建实例后,打开终端,下载模型到临......
  • 汽车类、4 通道DRV8904QPWPRQ1半桥电机驱动器,DRV8320RHRHAR 65V、三相智能栅极驱动器
    一、DRV8904-Q1 具有高级诊断功能的汽车类40V、6A、4通道半桥电机驱动器DRV8904QPWPRQ1是引脚对引脚兼容的集成多通道半桥驱动器系列,具有4至12个半桥。该器件系列具有低导通状态电阻(RDS(ON)),可在高电流运行期间提高热性能。该器件能够以独立、顺序或并行模式驱动刷式直......