首页 > 其他分享 >《看了受制了》第三十一天,7道题,合计164道题

《看了受制了》第三十一天,7道题,合计164道题

时间:2023-09-30 22:45:08浏览次数:48  
标签:道题 题目 int void cin 大意 solve 第三十一 164

2023年9月30日

Acwing5266 队列

题目大意

问你,n加在三个数上,看最后三个数能不能相等。

题目理解

先把三个数都变成最大的,然后最后的n如果是3的倍数且大于等于0即可

代码实现

void solve()
{

    ll n, a, b, c;
    cin >> a >> b >> c >> n;

    ll k = max(a, max(b, c));

    if(k > a) n -= (k - a);

    if(k > b) n -= (k - b);

    if(k > c) n -= (k - c);


    if(n % 3 == 0 && n >= 0) cout << "YES" << endl;
    else cout << "NO" << endl;

    return;
}

Acwing5267 合格数

题目理解

  • 先用差分,把所有的lr区间都加一遍
  • 然后前缀和差分数组,就可以得到所有的值出现的次数
  • 如果出现的次数大于k,那就标记上,存在一个数组里记为1
  • 然后对新数组前缀和,处理询问即可

代码实现

const int N = 2e5 + 10;

int a[N];
int b[N];
void solve()
{

    int n, k, q;

    cin >> n >> k >> q;
    for(int i = 1; i <= n; i++)
    {
        int l, r;
        cin >> l >> r;
        a[l]++;
        a[r + 1]--;
    }

    for(int i = 1; i <= N - 5; i++)
    {
        a[i] += a[i - 1];
        if(a[i] >= k) b[i] = 1;
    }

    for(int i = 1; i <= N - 5; i++)b[i] += b[i - 1];

    for(int i = 1; i <= q; i++)
    {
        int l, r;
        cin >> l >> r;
        cout << b[r] - b[l - 1] << endl;
    }

    return;
}

Div.3 Round888 A Escalator Conversations

题目大意

m个台阶每个台阶的高度是i * k,然后一个主角的身高是h,还有另外n个人,然后他们站在不同的台阶,问身高可以相同的有多少个人

题目理解

  • 枚举主角在的每一个台阶
  • 枚举每一个台阶的时候,其他n个人是否可以站在其他的台阶上,与主角当前的身高相同,如过相同,标记这个人
  • 最后求和即可

代码实现

const int N = 110;
bool st[N];
void solve()
{
    int n, m, k, h;
    int res = 0;

    cin >> n >> m >> k >> h;
    int a[N];
    for (int i = 1; i <= n; i++)
        cin >> a[i];

    memset(st, 0, sizeof st);
    
    for(int i = 1; i <= m; i++)
    {
        int p = h + i * k;
        for(int j = 1; j <= n; j++)
        {
            for(int q = 1; q <= m; q++)
            {
                if(a[j] + q * k == p && q != i) st[j] = true;
            }
        }
    }
    
    for(int i = 1; i <= n; i++) if(st[i]) res++;

    cout << res << endl;
    return;
}

Div.3 Round888 Parity Sort

题目大意

只可以偶数和偶数交换,奇数和奇数交换,问可否把序列变为升序。

题目理解

  • 对于偶数排序
  • 对于奇数排序
  • 然后原来的序列,是奇数就放奇数,是偶数就放偶数
  • 最后看序列是不是升序即可

代码实现

const int N = 2e5 + 10;
int a[N];
void solve()
{

    int n;
    cin >> n;
    vector<int> p,q;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        if(a[i] % 2) p.push_back(a[i]);
        else q.push_back(a[i]);
    }

    sort(p.begin(), p.end());
    sort(q.begin(), q.end());

    for(int i = 1, j = 0, k = 0; i <= n; i++)
    {
        if(a[i] % 2) a[i] = p[j++];
        else a[i] = q[k++];
    }

    bool flag = true;
    for(int i = 2; i <= n; i++)
        if(a[i] < a[i - 1])
        {
            flag = false;
            break;
        }


    if(flag) cout << "YES" << endl; 
    else cout << "NO" << endl;

}

Atocder ABC322 A FirstABC2

题目大意

第一个ABC串的下标是多少?

题目理解

枚举即可,没有-1

代码实现

void solve()
{
	int n;
	string s;
	cin >> n;
	cin >> s;
	int flag = -1;

	for(int i = 0; i <= n - 3; i++)
		if(s[i] == 'A' && s[i + 1] == 'B' && s[i + 2] == 'C')
		{
			flag = i + 1;
			break;
		}

	cout << flag;
	return;
}

Atcoder ABC322 B Prefix and Suffix

题目大意

mn的前缀还是后缀?前缀1后缀2都是0,都不是3

题目理解

直接写个check判断前后缀即可

代码实现

void solve()
{
	
	cin >> n >> m;
	string s1, s2;
	cin >> s1 >> s2;

	
	if(check_f(s1, s2) && check_b(s1, s2)) cout << 0;
	else if(check_f(s1, s2)) cout << 1;
	else if(check_b(s1, s2)) cout << 2;
	else cout << 3;


	return;
}

Atocder ABC322 C Festival

题目大意

n天,放m天烟花,并且告诉你第几天放,问第i天距离下一次放烟花还要多久

题目理解

用队列存一下,然后每次减就行,相同就pop

代码实现

void solve()
{
	int n, m;
	cin >> n >> m;
	queue<int> q;
	for(int i = 1; i <= m; i++)
	{
		int b;
		cin >> b;
		q.push(b);
	}

	for(int i = 1; i <= n; i++)
	{
		cout << q.front() - i << endl;
		if(q.front() == i) q.pop();
	}

	return;
}

标签:道题,题目,int,void,cin,大意,solve,第三十一,164
From: https://www.cnblogs.com/wxzcch/p/17738351.html

相关文章

  • 《看了受制了》第三十天,9道题,合计157道
    2023年9月29日Awcing244迷一样的牛题目大意有n头牛,身高是1~n给出了n头牛,每头牛前面有多少个比它高的牛求它们的身高是多少?题目理解将题目转化成,倒着去枚举,在现在的序列中,二分去找第k+1小的值,每次输出一个身高,把身高弹出。代码实现constintN=1e5+10;intn,......
  • 《看了受制了》第二十九天,7道题,合计148道题
    2023年9月28日好尴尬啊,好尴尬啊,怎么就想不到呢?今天的C、D思路都是来源于知乎大佬。【----->此篇博客解析<-----】Acwing1275最大数题目理解线段树,板子题。但是需要转化!!每次添加一个数,看作在flag+1的位置上,修改一个数然后query是求l到flag的最大值所以pushup的操作就......
  • 加训日记 Day8——关于cf一道题调了半天这件事
    Day8,9.28  ·国庆假期前狠狠刷cf  ·把之前比赛的题目基本上都补了(牛客的没来得及补)  ·这一个星期日均四道题,确实挺不错的  ·思维还是跟不上捏......
  • CCF第三十一次计算机软件能力认证202309-1坐标变换(其二) (暴力求解法,80分)
    代码如下此算法是暴力求解算法,时间复杂度O(mn),只能得80分,而且代码在模拟系统里一直提交错误(评判系统应该有bug),但在本地可以正常运行*#include<stdio.h>#include<stdlib.h>#include<math.h>typedefstructOperation{/*操作结点*/inttype;doublevalu......
  • 亚马逊筋膜枪UL1647测试报告申请
    筋膜枪,又称深层肌筋膜冲击仪,是一种通过高频冲击放松身体的软组织的软组织康复工具。[1]筋膜枪可理解为DMS(电动深层肌肉刺激器)的民用版本。使用时振动频率会发生变化,其基本功能与DMS相似。[2]筋膜枪的使用必须注意方法和方法。同时,筋膜枪的首次使用需要在专业人士的指导下使用。最好......
  • CCF第三十一次计算机软件能力认证202309-1坐标变换(其一)
    第一题第二题一般比较简单,需要对编程达到熟悉的要求即可,不要求了解过多的数据结构和算法使用C提交一直编译错误,相同的代码使用C++提交却能通过,真是醉了坐标变化(其一)题目描述1.需要创建一个操作符矩阵,行和列分别是n和22.需要创建一个操作数矩阵,行和列分别是m和23.求出操作符......
  • 《看了受制了》第二十五天吗,5道题,合计119道题
    2023年9月24日今天下午,把atcoder翻译的弄成了一个ChatGpt的接口版本。优化了很多。牛客周赛13矩阵转置置题面理解就是语法,倒着输出即可。代码实现#include<iostream>#include<algorithm>#include<unordered_map>#include<cstring>#include<cstdio>#include<vect......
  • 《看了受制了》第二十四天,7道题,合计114道题
    2023年9月23日今天周六,尽力做了做,虽然Acwing没能AK。。没读懂题。Acwing5152简单输出题目理解基础语法代码实现#include<iostream>#include<algorithm>#include<unordered_map>#include<cstring>#include<cstdio>#include<vector>#include<queue>#i......
  • 《看了受制了》第二十三天,4道题,合计107道题
    2023年9月22日哎,再一次意识到弱小。。Acwing1127香甜的黄油题目理解求n遍最短路,求出每个点到某个点到所有牧场的最短路即可。代码实现#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#include<vector>#include<queue>#include<unord......
  • 《看了受制了》第二十天,7道题,合计97道
    2023年9月19日牛客,ACWING图论!思前想后,这个图论一定要从0到0.1!!!牛客周赛游游的字符串题目理解输出k个you,然后剩下的都是o即可代码实现#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<queue>#include<map>#definexfirst#def......