首页 > 其他分享 >《看了受制了》第十八天,3道题,合计77道题

《看了受制了》第十八天,3道题,合计77道题

时间:2023-09-17 13:00:30浏览次数:55  
标签:第十八天 now 道题 int long 77 behind front include

2023年9月16日

今天因为acwing题简单,第一次正式AK

ACWING5149 简单计算

题目理解

真的很简单,就是循环

代码实现

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    int T;
    cin >> T;

    while(T--)
    {
        int a, b, c;
        cin >> a >> b >> c;

        cout << ((c - b) / a) * a + b << endl;
    }
    return 0;
}

ACWING5150 顶牛

题目理解

判断a[i][j],不能等于13。不然i号牛就不是强牛。

代码实现

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

const int N = 110;

int a[N][N];
int n;
vector<int> q;

int main()
{
    cin >> n;

    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            cin >> a[i][j];

    int res = 0;

    for(int i = 1; i <= n; i++)
    {
        int flag = 0;
        for(int j = 1; j <= n; j++)
        {
            if(a[i][j] == 1 || a[i][j] == 3)
            {
                flag = 1;
                break;
            }
        }
        if(!flag)
        {
            res++;
            q.push_back(i);
        }
    }

    if(res == 0)
        cout << 0;
    else{
        cout << res << endl;

        for(int i = 0 ; i < q.size(); i++)
            cout << q[i] << " ";
    }

    return 0;
}

ACWING5151 程序调用

题目理解

其实这个题目,并没我写的这么复杂。一个数组存位置,一个存是谁就好。哎。我想成双向链表了。

代码实现

双向链表实现

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

unordered_map<int, int> now, front, behind; //存当前的地方

const int N = 2e5 + 10;

int a[N];
int n, m, k;

int main()
{
    cin >> n >> m >> k;    

    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];

    }

    for(int i = 1; i <= n; i++)
    {
        now[a[i]] = i;              //当前
        front[a[i]] = a[i - 1];     //前面
        if(i != n)
            behind[a[i]] = a[i + 1];    //后面
        else
            behind[a[i]] = n + 10;
    }


    long long res = 0;
    for(int i = 1; i <= m; i++)
    {
        int b;
        cin >> b;

        res += (long long)ceil(1.0 * now[b] / k);

        long long p = now[b];

        if(now[b] != 1)
        {
            now[front[b]] += 1;
            now[b] -= 1;
            if(now[b] == 0)
                now[b] = 1;

            front[behind[b]] = front[b];
            behind[front[b]] = behind[b];  //1
            behind[b] = front[b];
            behind[front[front[b]]] = b;
            front[b] = front[front[b]];
            front[behind[b]] = b;
        }
    }

    cout << res;
    return 0;
}

简单实现

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;


const int N = 1e5 + 10;

int p[N], q[N];
int n, m, k;

int main()
{
    cin >> n >> m >> k;
    
    for (int i = 1; i <= n; i ++ )
    {
        cin >> p[i];
        q[p[i]] = i;
    }
    
    long long res = 0;
    while (m -- ){
        int b;
        cin >> b;
        
        res += ceil(1.0 * q[b] / k) ;
    

        if(q[b] != 1)
        {
            // q[b] 是位置, q[b] - 1是前面那个
            // p[q[b]] 是这个数是谁, p[q[b] - 1]前面那个数是谁
            
            
            swap(q[b], q[p[q[b] - 1]]);     //交换位置
            swap(p[q[b]], p[q[b] + 1]);     //交换数
        }
    }
    
    cout << res;
    return 0;
}

标签:第十八天,now,道题,int,long,77,behind,front,include
From: https://www.cnblogs.com/wxzcch/p/17708318.html

相关文章

  • CF677D Vanya and Treasure
    这题纯大力搞过去的,没用到啥技巧,后面看了下别人的做法发现还是很有意思的我的做法就很粗暴,考虑令\(f_{i,j}\)表示走到\((i,j)\)的最短路,转移的话不难发现是个分层图DP但是有一个显然的问题是当相邻两层间的点数很多时,暴力做的话会退化成\(O(n^2\timesm^2)\),因此需要优化像这种......
  • 《看了受制了》第十七天,4道题,合计74道题
    2023年9月15日小白月赛前三题,PAT一题。这个PAT,我怕是读题都有困难啊。中文都读半天。。。。。ACWIGN1494银行排队题目理解这个题目就是模拟。纯模,数字字符串来回转。代码实现#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<queue>us......
  • Codeforces Round 773 (Div. 2) B. Power Walking
    有\(n\)个增幅道具,第\(i\)个道具种类为\(a_i\),一个人的强度\(w\)为他所有道具的种类数。对于\(k]\in[1,n]\),询问将\(n\)个道具分配给\(k\)个人且每个人至少分配到一个道具后,能够得到的最想强度和\(\sum_{i=1}^{n}w_i\)。观察一:最低强度和\(\sum_{i=1}^{k}w......
  • 【代码随想录算法训练营第二天】977.有序数组的平方、209.长度最小的子数组 、59.螺旋
    Day2-数组2023.9.15Leetcode977有序数组的平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。初解我还是不能想到暴力解法之外的,对某个问题的最优复杂度也没有概念。就算提示我是用指针,我也想不到思路。现在我知......
  • 《看了受制了》第十六天,6道题,合计70道题
    2023年9月14日题目不难,但是有点恶心。今天写的这个是真受制ACWING1478签到签出题目理解这个就是要把时间都转化成秒,然后排序即可。代码实现#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn;pair<int,int>in[12],out[12];stri......
  • ORA-01775: looping chain of synonyms
    检查其他表、视图、函数等有无重复定义过同义词select*fromall_synonymswheretable_owner='HD40'andsynonym_namenotlike'%/%'andSYNONYM_nameLIKE'%VENDORAPPLY%'andtable_namenotin(selectobject_namefromuser......
  • 关于异或运算的一道题
      和白球的数量无关,  黑球偶数个时,概率0%。   黑球奇数个时,概率100%。  设白球是0,黑球是1    0 0 ——> 0          1 1——> 0   0 1 ——> 1        ......
  • 《看了受制了》第十三天,4道题,合计57道题
    2023年9月11日前面几天去建模,虽然感觉根本过不了。。。。。哎,我们继续回归受制了系列。最近也会总结知识。今天是第二次AK周赛。ACWING5148字符串匹配题目理解,本题是个贪心。题目一点是B串可以随意调整顺序,那就非常EZ了。我们只需要进行对A串B串做一个字符出现次数的统计先......
  • 1778_树莓派系统安装
    全部学习汇总:GitHub-GreyZhang/little_bits_of_raspberry_pi:myhackingtripaboutraspberrypi.一段视频学习教程的总结,对我来说基本上用处不大。因为我自己的树莓派简简单单安装完就开机成功了,而且实现了很多视频中介绍的功能。第一次知道NOOBS是用来实现多系统安装与启动......
  • 1777_树莓派截图功能实现
    全部学习汇总:GitHub-GreyZhang/little_bits_of_raspberry_pi:myhackingtripaboutraspberrypi.        最近入手了树莓派的3B版本,安装了官方推荐的Debian版本。之前使用Linux的几个发行版本的时候,系统中通常会有KDE等集成的截图工具,使用十分方便。在树莓派定制的......