首页 > 其他分享 >《看了受制了》第二十五天吗,5道题,合计119道题

《看了受制了》第二十五天吗,5道题,合计119道题

时间:2023-09-24 23:23:10浏览次数:38  
标签:道题 return int res ll 受制 include 119 Mod

2023年9月24日

今天下午,把atcoder翻译的弄成了一个ChatGpt的接口版本。优化了很多。

牛客周赛13 矩阵转置置

题面理解

就是语法,倒着输出即可。

代码实现

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;

const int Mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;

ll qmi(ll a, ll b){
    ll res = 1;
    while(b)
    {
        if(b & 1) res = res * a % Mod;
        a = a * a % Mod;
        b >>= 1;
    }
    return res;
}

ll inv(ll x){ return qmi(x, Mod - 2);}
ll mo(ll x){ return (x % Mod + Mod) % Mod;}

const int N = 110;
int a[N][N];

int main() {

    int n;
    cin >> n;

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

    
    for(int i = n; i >= 1; i--)
    {
        for(int j = n; j >= 1; j--)
            cout << a[i][j] << " ";
        
        cout << endl;
    }

    return 0;
}

牛客周赛13 小红买基金

题面理解

假设有k张卡,是符合范围的那么,这k张卡都有买和不买两种选择。所以就是2^k

代码实现

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;

const int Mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;

ll qmi(ll a, ll b){
    ll res = 1;
    while(b)
    {
        if(b & 1) res = res * a % Mod;
        a = a * a % Mod;
        b >>= 1;
    }
    return res;
}

const int N = 200000 + 10;


ll inv(ll x){ return qmi(x, Mod - 2);}
ll mo(ll x){ return (x % Mod + Mod) % Mod;}

ll C8(int n, int m)
{
    if (n == m || m == 0) return 1;
    return C8(n, m-1) * (n-m+1) / m;
}




ll n, a, b;

int main() {

    cin >> n >> a >> b;

    ll res = 1;

    for(int i = 1; i <= n; i++)
    {
        int p, q;
        cin >> p >> q;

        if(p >= a && q <= b)
            res = mo(res * 2);
        res = mo(res);
    }


    cout << res - 1;
    return 0;
}

牛客周赛13 小红改密码

题面理解

  • 替换大写字母:在密码中所有的大写字母位置上,可以替换为其他任意一个大写字母(除原字母外)。共有26种可能性。

  • 替换小写字母:在密码中所有的小写字母位置上,可以替换为其他任意一个小写字母(除原字母外)。共有26种可能性。*

  • 替换数字:在密码中所有的数字位置上,可以替换为其他任意一个数字(除原数字外)。共有10种可能性。

  • 替换特殊符号:在密码中所有的特殊符号位置上,可以替换为其他任意一个特殊符号(除原符号外)。共有4种可能性。

  • 如果那个字母只出现了一次,那只能替换出他自己以外的同种类的,如一个小字母,那么那个小写字母只能替换25个

代码实现

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;

const int Mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;

ll qmi(ll a, ll b){
    ll res = 1;
    while(b)
    {
        if(b & 1) res = res * a % Mod;
        a = a * a % Mod;
        b >>= 1;
    }
    return res;
}

const int N = 200000 + 10;


ll inv(ll x){ return qmi(x, Mod - 2);}
ll mo(ll x){ return (x % Mod + Mod) % Mod;}

int n;


int main() {

    int all = 26 + 26 + 10 + 4 - 1;
    cin >> n;
    while(n--)
    {
        string s;
        cin >> s;

        int num = 0, en = 0, EN = 0, oth = 0;

        for(int i = 0; i < s.size(); i++)
        {
            if(s[i] >= '0' && s[i] <= '9') num++;
            else if(s[i] >= 'A' && s[i] <= 'Z') EN++;
            else if(s[i] >= 'a' && s[i] <= 'z') en++;
            else if(s[i] == '!' || s[i] == '?' || s[i] == ',' || s[i] == '.') oth++;
        }

        int res = 0;
        if(num > 1)
            res += num * all;
        else
            res += 9;
        
        if(EN > 1)
            res += EN * all;
        else
            res += 25;
        
        if(en > 1)
            res += en * all;
        else
            res += 25;

        if(oth > 1)
            res += oth * all;
        else
            res += 3;

        cout << res << endl;
    }
    return 0;
}

Acwing1912 历程表

题面理解

这个题面直接枚举所有符合规则的数即可。范围很小,然后学到了stoll、stio,以及创建长度为n都是x组成的字符串string s(n, x)

代码实现

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;

const int Mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;

ll qmi(ll a, ll b){
    ll res = 1;
    while(b)
    {
        if(b & 1) res = res * a % Mod;
        a = a * a % Mod;
        b >>= 1;
    }
    return res;
}

ll inv(ll x){ return qmi(x, Mod - 2);}
ll mo(ll x){ return (x % Mod + Mod) % Mod;}


int main() {
    ll a, b;
    cin >> a >> b;
    int res = 0;
    for(int i = 3;  i <= 17; i++)
        for(int j = 0; j < 10; j++)
            for(int k = 0; k < 10; k++)
                if(j != k)
                    for(int u = 0; u < i; u++)
                    {
                        string s(i, '0' + j);
                        s[u] = '0' + k;
                        if(s[0] != '0')
                        {
                            ll v = stoll(s);

                            if(v >= a && v <= b)
                                res++;
                        }
                    }

    cout << res;
    return 0;
}

Acwing2003 找到牛

题面理解

我是用的最最最暴力的枚举。。。哎
优化枚举:

  • 记录前面有多少条前腿
  • 遇到后退就加上,前面有多少个前腿
  • 因为我们是从左往右枚举,所以遇到的后退,一定是能和前面的腿组合的!!!!!哎纯笨蛋了这个。

代码实现

笨蛋枚举

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <map>
#include <set>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int, int> PII;

const int Mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;

ll qmi(ll a, ll b){
    ll res = 1;
    while(b)
    {
        if(b & 1) res = res * a % Mod;
        a = a * a % Mod;
        b >>= 1;
    }
    return res;
}

ll inv(ll x){ return qmi(x, Mod - 2);}
ll mo(ll x){ return (x % Mod + Mod) % Mod;}


int main() {

    string s;
    cin >> s;

    int l = 0, r = 0;

    int res = 0;
    vector<int> posl, posr;
    for(int i = 0; i < s.size() - 1; i++)
        if(s[i] == s[i + 1] && s[i] == '(')
            posl.push_back(i);
    for(int i = 0; i < s.size() - 1; i++)
        if(s[i] == s[i + 1] && s[i] == ')')
            posr.push_back(i);
    
    

    for(int i = 0 ; i < posl.size(); i++)
    {
        
        for(int j = 0; j < posr.size(); j++)
        {
            if(posl[i] < posr[j])
            {
                res += posr.size() - j;
                break;
            }
        }
    }
    cout << res;
    return 0;
}

聪明蛋枚举

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

using namespace std;

string str;

int main()
{
    cin >> str;

    int res = 0;
    for (int i = 1, s = 0; i < str.size(); i ++ )
    {
        if (str[i] == '(' && str[i - 1] == '(') s ++ ;
        else if (str[i] == ')' && str[i - 1] == ')') res += s;
    }

    cout << res << endl;
    return 0;
}

标签:道题,return,int,res,ll,受制,include,119,Mod
From: https://www.cnblogs.com/wxzcch/p/17726928.html

相关文章

  • 《看了受制了》第二十四天,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......
  • 《看了受制了》第二十天,6道题,合计90道题
    2023年9月18日今天上午写了Atcoder的翻译,以后对于我这种菜鸡来说,多多少少有点用了。前两个题是贪心,第三个是BFS。Acwing908最大不相交区间数量题目理解全部按右端点进行排序然后如果下一个点的左,比我的右端点还大,那么就肯定不在一个区间然后更新目前的右端点即可代码实......
  • 《看了受制了》第十九天,7道题,合计84道题
    2023年9月17日今天晚上打了牛客的周赛。题目不是很难的题目,哎,最后一题是位运算,不会啊。。。异或和。。今晚还发现了一个up主,同是21级,大二摘金,我大二哎。每次都会感到世界的层次,认识到自己的弱小。。。而且也发现自己的一些观念上的错误。牛客周赛12小美种树题目理解这个题和......
  • [ARC119F] AtCoder Express 3
    题目链接观察样例1的解释,发现切换类型的方法是比较单一的这种就是直接走一段换一段,我们可以人为钦定换乘时最多走一步,因为相邻的同色也可以视作走车站这种情况复杂一些,需要往回走一段,但是依然可以发现往回走也至多一步,因为如果走了两步说明往回走了一步到达的车站依......
  • 《看了受制了》第十八天,3道题,合计77道题
    2023年9月16日今天因为acwing题简单,第一次正式AKACWING5149简单计算题目理解真的很简单,就是循环代码实现#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intmain(){intT;cin>>T;while(T--){int......
  • 《看了受制了》第十七天,4道题,合计74道题
    2023年9月15日小白月赛前三题,PAT一题。这个PAT,我怕是读题都有困难啊。中文都读半天。。。。。ACWIGN1494银行排队题目理解这个题目就是模拟。纯模,数字字符串来回转。代码实现#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<queue>us......
  • 《看了受制了》第十六天,6道题,合计70道题
    2023年9月14日题目不难,但是有点恶心。今天写的这个是真受制ACWING1478签到签出题目理解这个就是要把时间都转化成秒,然后排序即可。代码实现#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn;pair<int,int>in[12],out[12];stri......
  • Leetcode 1193. 每月交易Ⅰ
    1193.每月交易Ⅰ题目表:Transactions+---------------+---------+|ColumnName|Type|+---------------+---------+|id|int||country|varchar||state|enum||amount|int||trans_date|date......