IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Acwing 第 36 场周赛 -> 正文阅读

[数据结构与算法]Acwing 第 36 场周赛

T3读假题了,太菜了,掉大分,没有AK。。。。

1.处理字符串—模拟

在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
signed main()
{
    string s;
    cin>>s;
    string cs="aeiouy";
    for(auto c:s)
    {
        c=tolower(c);
        if(cs.find(c)==-1)
            cout<<"."<<c;
    }
}

2.图中的环—并查集+结论

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;
const int N = 110;
int n,m,k;
int p[N];
int find(int x)
{
    if(p[x]!=x)p[x]=find(p[x]);
    return p[x];
}
signed main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)p[i]=i;
    int cnt=0;
    while (m -- )
    {
        int a,b;
        cin>>a>>b;
        int pa=find(a),pb=find(b);
        if(pa==pb)cnt++;
        else p[pa]=pb;
    }
    int cnt2=0;
    for(int i=1;i<=n;i++)if(p[i]==i)cnt2++;
    if(cnt==1&&cnt2==1)cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    
}

3.机器人移动----二分

在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 200010,mod=1e9+7;
int n;
int st,ed;
char s[N];
int sx[N],sy[N]; 
bool check(int x)
{
	for(int i=1;i+x-1<=n;i++)
	{
		int a=st-(sx[n]-sx[i+x-1]+sx[i-1]);
		int b=ed-(sy[n]-sy[i+x-1]+sy[i-1]);
		if(x>=abs(a)+abs(b))return true;
	}
	return false;
}
signed main()
{
	cin>>n;
	scanf("%s",s+1);
	cin>>st>>ed;
	for(int i=1;i<=n;i++)
	{
		sx[i]=sx[i-1];
		sy[i]=sy[i-1];
		if(s[i]=='L')sx[i]--;
		else if(s[i]=='R')sx[i]++;
		else if(s[i]=='U')sy[i]++;
		else if(s[i]=='D')sy[i]--;
	}
	int d=abs(st)+abs(ed);
    if(n<d||(n&1)!=(d&1))
    {
        cout<<-1<<endl;
        return 0;
    }
    int l=0,r=n;
    while(l<r)
    {
    	int mid=l+r>>1;
    	if(check(mid))r=mid;
    	else l=mid+1;
	}
	cout<<r<<endl;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:10:58  更:2022-01-30 19:11:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:52:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码