AcWing.第121场周赛

以下是acwing第121场比赛的abc三题

比赛地址 :

竞赛 - AcWing

A. AcWing 5149. 简单计算

题目链接 :

5149. 简单计算 - AcWing题库

思路 :

直接模拟,用floor()函数来实现下取整

代码

cpp 复制代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;
typedef long long LL;
int gcd(int a,int b){ return b==0 ? a : gcd(b,a%b); }
int lcm(int a,int b){ if(a==0||b==0) return 0; return (a*b)/gcd(a,b); }
bool is_prime(int x){if(x<2) return false;
for(int i=2;i<=x/i;i++) if(x%i==0) return false; return true;}
//numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end()); // 去重操作
const int N = 2e5+10;

inline void solve(){
    int x,y,z; cin>>x>>y>>z;
    int ans = floor(1.0 * (z-y) / x) *x + y;
    cout << ans << endl;
}
 
int main()
{
    IOS
    int _;
    cin >> _;
    // _ = 1; 
    while(_ --) solve();
    return 0;
}

B. 5150.顶牛

题目链接 :

5150. 顶牛 - AcWing题库

思路 :

如果没出现a[i][j] = 1 || a[i][j] = 3,那么代表i牛是满足题目条件的;

这样模拟即可!

代码 :

cpp 复制代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;
typedef long long LL;
int gcd(int a,int b){ return b==0 ? a : gcd(b,a%b); }
int lcm(int a,int b){ if(a==0||b==0) return 0; return (a*b)/gcd(a,b); }
bool is_prime(int x){if(x<2) return false;
for(int i=2;i<=x/i;i++) if(x%i==0) return false; return true;}
//numbers.erase(std::unique(numbers.begin(), numbers.end()), numbers.end()); // 去重操作
const int N = 105;
int n,a[N][N];

inline void solve(){
    int ans = 0;
    vector<int> res;
    cin >> n;
    for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j];
    for(int i=1;i<=n;i++){
        bool tag = true;
        for(int j=1;j<=n;j++){
            if(a[i][j]==1 || a[i][j]==3){
                tag = false;
                break;
            }
        }
        if(tag){
            res.push_back(i);
            ans ++;
        }
    }
    cout << ans << endl;
    for(int num : res) cout << num << " ";
    return ;
}

int main()
{
    IOS
    int _;
    // cin >> _;
    _ = 1; 
    while(_ --) solve();
    return 0;
}

C. 5151.程序调用

原题链接 :

5151. 程序调用 - AcWing题库

思路 :

用hsah表实现模拟,否则会超时!!!

代码 :

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e5+144;
LL n, m, k,a[N],ans;
unordered_map<LL,LL> mp;
void swap(int &x,int &y){
    int tmp = x;
    x = y;
    y = tmp;
}
int main()
{
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        mp[a[i]] = i;
    }
    for(int i=1;i<=m;i++){
        int b ; cin>>b;
        if(mp[b]%k==0) ans += mp[b]/k;
        else ans += mp[b]/k+1;
        int idx = mp[b];
        if(idx==1) continue;
        int beforeNum = a[idx-1];
        swap(a[idx-1],a[idx]);
        swap(mp[b],mp[beforeNum]);
    }
    cout << ans << endl;
    return 0;
}
相关推荐
晚风吹长发7 分钟前
二分查找算法+题目详解
c++·算法·二分查找
悠悠~飘13 分钟前
18.PHP基础-递归递推算法
算法·php
pilgrim5335 分钟前
结合 Leetcode 题探究KMP算法
算法·leetcode
罗义凯1 小时前
其中包含了三种排序算法的注释版本(冒泡排序、选择排序、插入排序),但当前只实现了数组的输入和输出功能。
数据结构·c++·算法
kevien_G11 小时前
JAVA之二叉树
数据结构·算法
syt_biancheng2 小时前
Day3算法训练(简写单词,dd爱框框,3-除2!)
开发语言·c++·算法·贪心算法
二进制的Liao2 小时前
【编程】脚本编写入门:从零到一的自动化之旅
数据库·python·算法·自动化·bash
自然数e3 小时前
C++多线程【线程管控】之线程转移以及线程数量和ID
开发语言·c++·算法·多线程
云在Steven3 小时前
在线确定性算法与自适应启发式在虚拟机动态整合中的竞争分析与性能优化
人工智能·算法·性能优化
前进的李工4 小时前
LeetCode hot100:234 回文链表:快慢指针巧判回文链表
python·算法·leetcode·链表·快慢指针·回文链表