【LGR-154-Div.4】洛谷入门赛 #15

\(A\) luoguB3813 [语言月赛 202308]四个人的排名加起来没有小粉兔高 AC

  • 水题。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    int main()
    {
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    if(a+b+c+d<51)
    {
    cout<<"Rabbit wins";
    }
    else
    {
    cout<<"Rabbit lose";
    }
    return 0;
    }

\(B\) luoguB3814 [语言月赛 202308]小粉兔喜欢下象棋吗 AC

  • 时间复杂度 \(O(8^3)\) ,枚举即可。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    int dix[10]={-2,-2,-1,-1,1,1,2,2},diy[10]={1,-1,2,-2,2,-2,1,-1};
    int main()
    {
    int sx,sy,cx,cy,mx,my,i,j,k;
    cin>>sx>>sy>>cx>>cy>>mx>>my;
    for(i=0;i<=7;i++)
    {
    for(j=0;j<=7;j++)
    {
    for(k=0;k<=7;k++)
    {
    if(mx+dix[i]+dix[j]==sx&&my+diy[i]+diy[j]==sy&&mx+dix[i]+dix[k]==cx&&my+diy[i]+diy[k]==cy)
    {
    cout<<"Yes"<<endl;
    return 0;
    }
    }
    }
    }
    cout<<"No"<<endl;
    return 0;
    }

\(C\) luoguB3815 [语言月赛 202308]小粉兔的挂科与压力 AC

  • \(switch\) 大法好。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    int main()
    {
    int n,i,p,ans=0,sum=1+2+3+4+5+6;
    cin>>n;
    for(i=1;i<=n-1;i++)
    {
    cin>>p;
    switch(p)
    {
    case 1:
    ans+=sum-2-1;
    break;
    case 2:
    ans+=sum-1-2;
    break;
    case 3:
    ans+=sum-4-3;
    break;
    case 4:
    ans+=sum-3-4;
    break;
    case 5:
    ans+=sum-6-5;
    break;
    case 6:
    ans+=sum-5-6;
    break;
    }
    }
    cin>>p;
    switch(p)
    {
    case 1:
    ans+=sum-2;
    break;
    case 2:
    ans+=sum-1;
    break;
    case 3:
    ans+=sum-4;
    break;
    case 4:
    ans+=sum-3;
    break;
    case 5:
    ans+=sum-6;
    break;
    case 6:
    ans+=sum-5;
    break;
    }
    cout<<ans;
    return 0;
    }

\(D\) luoguB3816 [语言月赛 202308]小粉兔做麻辣兔头 AC

  • 水题。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    int main()
    {
    ll n,c,i,a,ans,maxx=0,k;
    cin>>n>>c;
    ans=n*c;
    k=0;
    for(i=1;i<=n;i++)
    {
    cin>>a;
    maxx=max(maxx,a);
    if(maxx+c*(n-i)<ans)
    {
    ans=maxx+c*(n-i);
    k=i;
    }
    }
    cout<<k<<" "<<ans;
    return 0;
    }

\(E\) luoguB3817 [语言月赛 202308]小粉兔还会忘记考试吗 AC

  • \(STL\) 大法好,练习使用 \(map\) 。
  • 没有注意到只要有成绩就不算缺考,调了 \(10min+\) 。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    ll e[50001];
    map<ll,ll>s;
    int main()
    {
    ll n,m,i,ans1=0,ans2=0,p,ls;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
    cin>>e[i];
    }
    for(i=1;i<=m;i++)
    {
    cin>>p>>ls;
    s[p]=ls+1;
    }
    for(i=1;i<=n;i++)
    {
    if(s[e[i]]==0)
    {
    ans1++;
    }
    if(s[e[i]]-1<60)
    {
    ans2++;
    }
    }
    cout<<ans1<<endl;
    cout<<ans2<<endl;
    return 0;
    }

\(F\) luoguB3818 [语言月赛 202308]电脑中了满屏粉兔病毒

  • \(N^3\) 暴力枚举即可。
```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
char c[501][501];
int main()
{
int n,m,sum1,sum2,i,j,k,sum,flag,ans=0;;
cin>>n>>m>>sum1>>sum2;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>c[i][j];
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(c[i][j]=='F')
{
sum=flag=0;
for(k=1;k<=i-1;k++)
{
if(c[k][j]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=1;k<=j-1;k++)
{
if(c[i][k]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=i+1;k<=n;k++)
{
if(c[k][j]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=j+1;k<=m;k++)
{
if(c[i][k]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
if(sum>=3)
{
ans++;
}
}
if(c[i][j]=='M')
{
sum=flag=0;
for(k=1;k<=i-1;k++)
{
if(c[k][j]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=1;k<=j-1;k++)
{
if(c[i][k]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=i+1;k<=n;k++)
{
if(c[k][j]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=j+1;k<=m;k++)
{
if(c[i][k]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
if(sum>=3)
{
ans++;
}
}
}
}
cout<<ans<<endl;
return 0;
}
```

\(G\) luoguB3819 [语言月赛 202308]小粉兔处理题解审核志愿者轮换 AC

  • \(STL\) 大法好,练习使用 \(map\) 。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    string pd;
    map<string,bool>e;
    map<string,bool>::iterator it;
    int main()
    {
    int n,m,l,i;
    cin>>n>>m>>l;
    for(i=1;i<=n;i++)
    {
    cin>>pd;
    e[pd]=true;
    }
    for(i=1;i<=m;i++)
    {
    cin>>pd;
    e[pd]=false;
    }
    for(i=1;i<=l;i++)
    {
    cin>>pd;
    e[pd]=true;
    }
    for(it=e.begin();it!=e.end();it++)
    {
    if(it->second==true)
    {
    cout<<it->first<<endl;
    }
    }
    return 0;
    }

\(H\) luoguB3820 [语言月赛 202308]小粉兔的元素反应

  • 口胡:若在序列 \(a\) 中,存在一组 \(i,j\) 满足 \(a_i \times a_j \bmod 154=0\) 或 \(a_i \times a_j \bmod 147=0\) ,则一定有解。
  • 部分分( \(80pts\) ):暴力枚举,复杂度 \(O(Tn^2)\) ,加些特判。
  • 正解:
    • 一个简单性质: \((a_i \times a_j) \bmod p=((a_i \bmod p) \times (a_j \bmod p)) \bmod p\)
    • 当 \(k \le \sum\limits_{i=1}^{n} a_i\) ,输出 Yes
    • 用 \(map\) 或直接枚举 \(a_i \bmod p\) 的值即可,复杂度为 \(O(TK+ \sum n)\) ,其中 \(K=154^2+147^2+15=45340\) 。
      • 这数据有点弱啊,压着线过都正常,但是#8#9#10 300多ms过就不正常了。
      • 加强数据了@我。
    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define sort stable_sort
    #define endl '\n'
    char k[1000001];
    ll a[1000001],sum1[155],sum2[148];
    bool check(ll sum[],ll mod)
    {
    for(ll i=0;i<=mod-1;i++)
    {
    if(sum[i]!=0)
    {
    for(ll j=0;j<=mod-1;j++)
    {
    if(!(i==j&&sum[i]==1))//特判
    {
    if(sum[j]!=0)
    {
    if((i*j)%mod==0)
    {
    return true;
    }
    }
    }
    }
    }
    }
    return false;
    }
    int main()
    {
    ll t,n,i,j,flag,sum,len,num;
    cin>>t;
    for(i=1;i<=t;i++)
    {
    cin>>n>>(k+1);
    memset(sum1,0,sizeof(sum1));
    memset(sum2,0,sizeof(sum2));
    flag=sum=num=0;
    for(j=1;j<=n;j++)
    {
    cin>>a[j];
    sum1[a[j]%154]++;
    sum2[a[j]%147]++;
    sum+=a[j];
    }
    len=strlen(k+1);
    for(j=1;j<=len;j++)
    {
    num=num*10+k[j]-'0';
    if(num>sum)
    {
    flag=1;
    break;
    }
    }
    if(flag==1)
    {
    if(check(sum1,154)==true||check(sum2,147)==true)
    {
    cout<<"Yes"<<endl;
    }
    else
    {
    cout<<"No"<<endl;
    }
    }
    else
    {
    cout<<"Yes"<<endl;
    }
    }
    return 0;
    }

\(I\) luoguB3821 [语言月赛 202308]小粉兔 Failed System Test WA

  • 问题1:卡 \(int\)

    • 赛场上把 \(int\) 的范围记成了 \(2e10\) ,挂了 \(750pts\) 。
  • 问题2:输出 ac
    • 把判断特征误以为是数据规模,临结束才发现。
    #include <iostream>
    
    using namespace std;
    
    int main() {
    int taskId;
    cin >> taskId;
    if (taskId == 1) {
    cout << "1000000000 999999999" <<endl;
    } else if (taskId == 2) {
    cout << "ac" << endl;
    } else { // 这个 else 不会被执行
    cout << "Stupid Fusu!" << endl;
    }
    }

总结

  • 本次开题顺序 \(ABCDEIGI\) ,要合理安排开题顺序。
  • 先通读题面,防止漏读信息( \(E,I\) 因此被卡)。
  • 记住各种类型所存储的范围
    • 一亿是 \(1e8\) 。
    • \(int\) : \((-2^{31}-1)\) ~ \((2^{31}-1)\)
      • \(-2147483647\) ~ \(2147483647\)
  • 不要在一道题上浪费太长时间( \(I\) 想了 \(1h\) ,导致 \(F,H\) 没写)。
  • \(hack\) 题目首先考虑卡掉存储类型(eg: \(I\) 的问题一)。

【LGR-154-Div.4】洛谷入门赛 #15的更多相关文章

  1. 【LGR-(-8)】洛谷入门赛 #5 题解

    比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...

  2. war2 洛谷模拟赛day2 t3 状压

    (new )   war2 题解:总体数据而言,我们很容易想到着就是DP啊,我们DP数组,用状态压缩,代表有那些点已经被占领过了,代表上一次我占的是那个.对于每一次状态转移,若当前我们要占领的Port ...

  3. 洛谷试炼场 - 关卡1-5 - 简单字符串 - (Done)

    P1055 ISBN号码 #include<bits/stdc++.h> using namespace std; string s; ]={','X'}; int main() { ci ...

  4. 洛谷p3803 FFT入门

    洛谷p3803 FFT入门 ps:花了我一天的时间弄懂fft的原理,感觉fft的折半很神奇! 大致谈一谈FFT的基本原理: 对于两个多项式的卷积,可以O(n^2)求出来(妥妥的暴力) 显然一个多项式可 ...

  5. 洛谷 P5594 【XR-4】模拟赛

    洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...

  6. 草地排水 洛谷P2740 最大流 入门题目

    草地排水 洛谷P2740 最大流入门题目 题意 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一 ...

  7. 洛谷 P5089: CodeForces #500 (Div. 1) B / 1012B : Chemical table

    题目传送门:洛谷P5089. 题意简述: 一张 \(n \times m\) 的表格,有一些格子有标记,另外一些格子没有标记. 如果 \((r_1,c_1),(r_1,c_2),(r_2,c_1)\) ...

  8. 洛谷 P2015 二叉苹果树(codevs5565) 树形dp入门

    dp这一方面的题我都不是很会,所以来练(xue)习(xi),大概把这题弄懂了. 树形dp就是在原本线性上dp改成了在 '树' 这个数据结构上dp. 一般来说,树形dp利用dfs在回溯时进行更新,使用儿 ...

  9. 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)

    洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...

  10. 洛谷P1280 && caioj 1085 动态规划入门(非常规DP9:尼克的任务)

    这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...

随机推荐

  1. 05-逻辑仿真工具VCS-执行过程

    Verilog Simulation Event Queue 主要了解VCS是如何处理交给它的代码的 Verilog的仿真事件队列,介绍VCS如何处理交给它的代码.VCS是Synopsys公司的,支持 ...

  2. vscode插件 - 浏览器中自动刷新 Live Server

  3. 类外static函数定义要不要加static关键字?

    类外static函数定义要不要加static关键字? 先说答案:不需要. 错误代码: #include<iostream> #include<memory> using nam ...

  4. JMS微服务开发示例(五)生成短token,实现用户无状态登录

    用户token,也可以利用第三方框架生成,JMS也包含了自己的token服务器. 部署TokenServer 到这里下载 tokenserver.zip,然后部署运行TokenServer. 微服务中 ...

  5. [转帖]高性能分布式对象存储——MinIO实战操作(MinIO扩容)

    https://juejin.cn/post/7132852449244610574 一.前言 MinIO的基础概念和环境部署可以参考我之前的文章:高性能分布式对象存储--MinIO(环境部署) 二. ...

  6. [转贴]CPU设计全流程-以Alpha为例

    https://zhuanlan.zhihu.com/p/529872958 1.前言 作为一种超大规模集成电路,CPU在过去几十年里始终遵循摩尔定律--每过十八到二十四个月,硅片单位面积上晶体管数量 ...

  7. K8S 使用loki 监控 应用日志的搭建办法

    1. 背景 这几天一直在用k8s部署分SU的测试环境,开发反馈看日志比较麻烦. 昨天晚上在家里本来想搭建ELK 发现比较重, 又说有一个比较轻量级的 loki 可以实现使用grafana进行监控和查看 ...

  8. Go基础之指针

    Go语言中的指针 目录 Go语言中的指针 一.Go语言中的指针介绍 1.1 指针介绍 1.2 基本语法 1.3 声明和初始化 1.4 Go 指针的3个重要概念 1.4.1 指针地址(Pointer A ...

  9. C# 使用字典将枚举转换为String

    枚举 public enum ColorType { Red = 10, Blue = 20, Green = 30, Yellow = 40, } String var A1 = "AAA ...

  10. 手撕Vue-提取元素到内存

    接着上一篇文章,我们已经实现了构建Vue实例的过程,接下来我们要实现的是提取元素到内存. 主要是通过文档碎片来实现,文档碎片是一个轻量级的文档,可以包含和控制节点,但是不会像真实的DOM那样占用内存, ...