首页 > 其他分享 >牛客周赛 Round 63

牛客周赛 Round 63

时间:2024-10-14 19:51:43浏览次数:9  
标签:cnt int tt ++ cin 牛客 63 include Round

总体思路:

        A签到、B小思维、C bfs(),注意需要和初始位置的值相同、D数学(找规律) E,F待补,比赛时打的暴力

 A

代码:

#include<bits/stdc++.h>

using namespace std;

string a;

int main()
{
    cin >> a;
    if(a.size() != 2)
    {
        cout << "No" << endl;
        return 0;
    }
    if(a[0] != a[1]) cout << "No" << endl;
    else cout << "Yes" << endl;
    
    return 0;
}

B

思路:

         初始状态不是回文数,修改一个数后的状态是回文数,那么初始状态有且仅有一对数不相等

代码:

#include<bits/stdc++.h>
 
using namespace std;
 
const int N = 1050;
int a[N], n, k;
int res = 0, cnt = 0;
 
int main()
{
    cin >> n >> k;
    for(int i = 0; i < n; i ++ ) cin >> a[i];
     
    for(int i = 0; i < n; i ++ )
    {
        int t = i + k;
        if(t > n) break;
        for(int l = i, r = t - 1; l < r; l ++, r --  )
            if(a[l] == a[r])
                cnt += 2;//记录相同的对数
                
        //判断是否有且仅有一对数不满足
        //奇数时中间的数单列,则特殊处理
        if(k % 2)
        {
            if(cnt + 3 == k)
                res ++ ;
        }
        else
        {
            if(cnt + 2 == k)
                res ++ ;
        }
        cnt = 0;
    }
     
    cout << res << endl;
}

C

思路:

        简单的BFS

代码:

#include<bits/stdc++.h>
 
using namespace std;
 
const int N = 105;
typedef pair<int, int> PII;
 
int a[N][N];
int n, m;
int t;
queue<PII> q;
 
 
bool bfs(int fin )
{    //表示向右,与向下
    int dx[2] = {0, 1}, dy[2] = {1, 0};
    q.push({0, 0});
     
    while(q.size())
    {
        auto tt = q.front();
        if(tt.first == n - 1 && tt.second == m - 1 )
            return true;
        q.pop();
         
        for(int i = 0; i < 2; i ++ )
        {
            int x = tt.first + dx[i], y = tt.second + dy[i];
            if(x < n && y < m && a[x][y] == fin)
                q.push({x, y});
        }
    }
     
    return false;
}
 
int main()
{
    cin >> t;
    while(t -- )
    {
        cin >> n >> m;
         
        for(int i = 0; i < n; i ++ )
            for(int j = 0; j < m; j ++ )
                cin >> a[i][j];
        int fin = a[0][0];
        
        if(bfs(fin)) cout << "Yes" << endl;
        else cout << "No" << endl;
        //清空
        while(q.size()) q.pop();
    }
     
    return 0;
}


D

思路:

        只要满足等于x即可,那么我们可以找规律去凑数。既然是要凑数,那么先凑1为主

代码:

#include<bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int x;
    cin >> x;
    int t = 1 - x;
    if(x == 1) //因为我是1为主,对x == 1时a[1][2] == 0,不符题意,则特殊处理
    {
        printf("2 1 1\n2 2 1\n1 1 1\n");
        return 0;
    }
    printf("2 1 1\n1 1 %d\n1 1 1", t);
     
    return 0;
}


 

标签:cnt,int,tt,++,cin,牛客,63,include,Round
From: https://blog.csdn.net/2301_80358171/article/details/142927080

相关文章

  • 题解:P11132 【MX-X5-T4】「GFOI Round 1」epitaxy
    ProblemLink【MX-X5-T4】「GFOIRound1」epitaxy题目描述给你两个正整数\(n,m\)。定义一个\(1\simn\)的排列\(p\)的价值为所有的\(n-m+1\)个长度为\(m\)的连续子串内最大值的最大公因数。(规定单个数的最大公因数为其自身。)请你求出一个在所有\(1\simn\)......
  • 牛客AB33.相差不超过k的最多数 (滑动窗口) 牛客.DP最长公共子序列牛客.春游主持人调度
    目录牛客AB33.相差不超过k的最多数 (滑动窗口) 牛客.DP最长公共子序列牛客.春游主持人调度(二)牛客AB33.相差不超过k的最多数 (滑动窗口) 和之前那个空调吹风属于一道题的类型,当然滑动窗口,最大值-最小值,然后<=p即可也可以双指针来取寻找最大值和最小值impor......
  • 题解:P11063 【MX-X4-T3】「Jason-1」数对变换
    ProblemLink【MX-X4-T3】「Jason-1」数对变换题外话场上把贪心注重在一个奇怪地方了,导致交的时候已经有\(9\)个人\(\textcolor{green}{AC}\)了(哭)。题意简述对于数对\((x,y)\),你可以执行以下两种变换:类型1:取\(1\lek\lex\),令\((x,y)\gets(\lfloor\frac{x}{k}......
  • Springboot基于java的学生宿舍管理系统ty263(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,公告信息,公寓信息,宿舍信息,宿舍分配,报修信息,报修进度,评分排名,晚归登记,宿舍评分开题报告内容一、课题背景及研究意义随着高校招生规模的扩大,学生数......
  • CD63:早期诊断和精准治疗的冉冉新星
    前 言CD63也被称为溶酶体相关膜蛋白3(LAMP3),属于四次跨膜蛋白超家族成员,与细胞的活化、黏附、变异及肿瘤的侵袭、转移等有关。CD63是外泌体特异性标志蛋白,为新型药物递送及靶向外泌体提供契机,还可作为肿瘤的潜在标志物(如卵巢癌、肺癌等)。研究人员利用重组CD63蛋白开发多种适配......
  • Codeforces Round 978 (Div. 2) A-D1 题解
    我的同学还在VP,排名马上放声明:不要觉得有subtask的题目只做Easyversion没有意义,从这里也能捞很多分,况且有的时候并不是简单和难的区别,而是考不同的算法A.BustoPénjamo题意有一辆车上面有$r$排座位,每排有$2$个座位,现在共$n$个家庭出行坐公交车,每个家庭$a_i$......
  • codeforces round 977 (div.2) C2(访问set的第一个元素,观察数据规律-出现次序,用set记
    解题历程:我首先想到的是等效法,每一次操作可以等效为每次将第一个人抽出放入一组,后面的人往前移,而该组的人就是可以任意放置的人,当b中后面再出现与前一个相同的人时,就不进行操作,当b中出现不同的人时,就看看这组中有没有这个人,有的话就下一个循环,没有的话就看看这个新的人是否按a中......
  • 刷c语言练习题8(牛客网)
    1、如果有inta=5,b=3,在执行!a&&b++;后a和b的值分别是()A、5,3B、0,1C、0,3D、5,4答案:A解析:按照优先级顺序,先计算!a,得到0。由短路法则,b++不进行计算,又!a并没有改变a的值,所以a和b的值分别是5,3,选择选项A。2、以下程序的输出结果是()1234567main(){     ......
  • 2024.10.11 LGJ Round
    C有\(N\)人站在一条数轴上。他们人手一个烟花,每人手中的烟花都恰好能燃烧\(T\)秒。每个烟花只能被点燃一次。开始时,只有\(K\)号的烟花开始燃烧,当两人位置重叠且其中一人手中的烟花燃着时,另一人手中的烟花就可以被点燃。求至少需要以多快的速度跑,才能使所有人的烟花都曾被点......
  • Codeforces Round 899 (Div. 2)题解记录
    题目链接:https://codeforces.com/contest/1882A.IncreasingSequence从1开始慢慢和\(a[i]\)的所有值比较,注意最后一个位置特判下#include<iostream>#include<string.h>#include<map>#include<vector>#include<set>#include<unordered_set>#include<......