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 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Codeforces Round #784 (Div. 4)【题解】 -> 正文阅读

[数据结构与算法]Codeforces Round #784 (Div. 4)【题解】

https://codeforces.com/contest/1669
鸽了很长时间,才补。
这场是手速赛。AK了。

A. Division?【语法题】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{ 
	int t; cin>>t;
	while(t--)
	{
		int x; cin>>x;
		if(x>=1900) puts("Division 1");
		else if(x>=1600&&x<1900) puts("Division 2");
		else if(x>=1400&&x<1600) puts("Division 3");
		else if(x<1400) puts("Division 4");
	}
	return 0;
}

B. Triple【语法题】

#include<bits/stdc++.h>
using namespace std;
int main(void)
{ 
	int t; cin>>t;
	while(t--)
	{
		int n,x; cin>>n;
		bool flag=0;
		map<int,int>mp;
		for(int i=1;i<=n;i++) cin>>x,mp[x]++;
		for(auto i=mp.begin();i!=mp.end();i++)
		{
			if(i->second>=3)
			{
				flag=1;
				cout<<i->first<<endl;
				break;
			}
		}
		if(!flag) puts("-1");
	}
	return 0;
}

C. Odd/Even Increments【思维】

在这里插入图片描述
题目每次都是选奇数下标或偶数下标整体加1。
故奇数下标的数整体都是同一种奇偶性。故偶数下标的数整体都是同一种奇偶性。

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n; cin>>n;
		map<int,int>mp1,mp2;
		for(int i=1;i<=n;i++) 
		{
			int x; cin>>x;
			if(i&1) mp1[x&1]++;
			else mp2[x&1]++;
		}
		if(mp1.size()==1&&mp2.size()==1) puts("YES");
		else puts("NO");
	}
	return 0;
}

D. Colorful Stamp【思维】

在这里插入图片描述
你会发现,‘W’-‘W’ 之间如果有其他颜色。则’R’和‘B’两种颜色必有。

#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n; cin>>n;
		string s; cin>>s;
		bool flag=1;
		for(int i=0;i<s.size();i++)
		{
			if(s[i]!='W')
			{
				int j=i;
				map<char,int>mp;
				while(j<s.size()&&s[j]!='W') mp[s[j]]++,j++;
				if(mp.size()==1) flag=0;
				i=j;
			}
		}
		if(flag) puts("YES");
		else puts("NO");
	}
	return 0;
}

E. 2-Letter Strings

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e6*2+10;
typedef long long int LL;
string s[N];
int main(void)
{ 
	int t; cin>>t;
	while(t--)
	{
		int n; cin>>n;
		for(int i=0;i<n;i++) cin>>s[i];
		LL cnt[26][26]={0},sum=0;
		for(int i=0;i<n;i++)
		{
			int x=s[i][0]-'a',y=s[i][1]-'a';
			for(int j=0;j<26;j++)
				if(j!=y) sum+=cnt[x][j];
			for(int j=0;j<26;j++)
				if(j!=x) sum+=cnt[j][y];
			cnt[x][y]++;
		}
		cout<<sum<<endl; 
	}
	return 0;
}

F. Eating Candies【双指针 / 二分】

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int n,m,t,a[N],b[N],s[N];
int main(void)
{ 
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++) cin>>a[i],s[i]=0;
		for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
		for(int i=1;i<=n;i++) b[i]=b[i-1]+a[n-i+1];
		int ans=0;
		for(int i=1;i<=n;i++)
		{
		    int temp=s[i];
		    int index=lower_bound(b+1,b+n+1,s[i])-b;
		    if(b[index]==temp && i+index<=n)
		        ans=max(ans,i+index);
		}
		cout<<ans<<endl;
	}
	return 0;
}

G. Fall Down【模拟】

在这里插入图片描述
模拟。

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
int n,m,t;
string s[50];
void solve(int x,int y)
{
    queue<PII>q; q.push({x,y});
    while(q.size())
    {
        auto temp=q.front(); q.pop();
        x=temp.first,y=temp.second;
        int tempx=x+1;
        if(tempx>=n) continue;
        if(s[tempx][y]=='.')
        {
            s[x][y]='.';
            s[tempx][y]='*';
            q.push({tempx,y});
        }
    }
}
int main(void)
{ 
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=0;i<n;i++) cin>>s[i];
		for(int i=n-1;i>=0;i--)
		    for(int j=0;j<m;j++)
		        if(s[i][j]=='*') solve(i,j);
		for(int i=0;i<n;i++) cout<<s[i]<<endl;
		puts("");
	}
	return 0;
}

H. Maximal AND【贪心】

在这里插入图片描述
贪心,从高到低位贪

#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int a[N];
int main(void)
{
	int t; cin>>t;
	while(t--)
	{
		int n,k; cin>>n>>k;
		int cnt[35]={0};
		for(int i=1;i<=n;i++) cin>>a[i];
		for(int i=1;i<=n;i++)
			for(int j=0;j<=30;j++)
					if(a[i]>>j&1) cnt[j]++;
		long long int ans=0;
		for(int i=30;i>=0;i--)
		{
			if(cnt[i]<n&&cnt[i]+k>=n)
				k=k-(n-cnt[i]),cnt[i]=n;
		}
		for(int i=0;i<=30;i++) 
			if(cnt[i]==n) ans+=1<<i;
		cout<<ans<<endl;
	}
	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:55:25  更:2022-04-30 08:58:27 
 
开发: 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 5:30:28-

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