首页 > 其他分享 >SMU Summer 2024 Contest Round 7

SMU Summer 2024 Contest Round 7

时间:2024-07-26 20:51:12浏览次数:13  
标签:Summer int SMU mid long cin 2024 && define

Buy an Integer
1.这题是二分答案,而不是公式拿来整除,以为是整除找了半天自己的错误,其实二分答案一发就能过。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
typedef pair<int,int> pii;
#define x first
#define y second
#define all(v) v.begin(),v.end()
#define ull unsigned long long
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int a,b,x;
bool check(int mid)
{
    int num=0;
    string s=to_string(mid);
     num=s.size();
    if(a*mid+b*num<=x) return 1;
    return 0;
}

signed main()
{
    ios::sync_with_stdio(0),cin.tie(0);
     
     cin>>a>>b>>x;
     int l=0,r=1e9;
  /*   int ans=0;
     while(l<=r)
     {
         int mid=(l+r)>>1;
         if(check(mid)) {
             l=mid+1;
             ans=mid;
         }
         else r=mid-1;
         
     }
    cout<<ans;*/
    while(l<r)
     {
         int mid=(l+r+1)>>1;
         if(check(mid)) l=mid;
         else r=mid-1;
         
     }
    cout<<l;
    //这题这两种二分写法都可以,建议学第一个模版
    
}

Make Equal With Mod
1.直接每个数对3取余,这样就只有0 1 2去判断,如果三个数都相同或者只有0 2即正确,其余情况都是错误的。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define all(v) v.begin() ,v.end()
signed main(){
   std::ios::sync_with_stdio(0);
   std::cin.tie(0);
   int t;cin>>t;
   while(t--)
   {
       int n;cin>>n;
       int fla1=0,fla2=0,fla0=0;
       vector<int>ve(n);
       for(int i=0;i<n;i++) {
           cin>>ve[i];
           ve[i]%=3;
           if(ve[i]==1) fla1=1;
           if(ve[i]==2) fla2=1;
           if(ve[i]==0) fla0=1;
       }
       if((fla1&&!fla2&&!fla0 )||(!fla1&&!fla2&&fla0)||(!fla1&&fla2&&!fla0)||(fla2&&!fla1&&fla0)) 
       {
           cout<<"YES";
       }else cout<<"NO";
       cout<<endl;
        
       
       
       
       
   }
   
   
   
   return 0;
}

String Formation
1.这题其实就是卡翻转的时间,那么对其处理一下就好
2.每次遇到操作2时,检查一下cnt是奇数还是偶数,如果是偶数,说明其实没有翻转,那么原来怎么插入,我们就怎么插入,如果是奇数,说明翻转了,那么我们把原来要插到前面的插到后面,原来要插到后面的同理,最后循环结束再检查一下cnt是奇数还是偶数,若为奇数翻转一下即可。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
typedef pair<int,int> pii;
#define x first
#define y second
#define all(v) v.begin(),v.end()
#define ull unsigned long long
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int a,b,x;


signed main()
{
    ios::sync_with_stdio(0),cin.tie(0);
    string s;cin>>s;
    int n; cin>>n;

    int fla=0,cnt=0;
    while(n--)
    {
        int op; cin>>op;
        if(op==2)
        {
            int x;
            string c;
            cin>>x>>c;
            if((cnt%2==0&&x==1)||(cnt%2==1&&x==2))//没翻转按原来插,翻转了x==2才是插前面
            {
                s=c+s;
            }else{
                s+=c;
            }
        }else{
            cnt++;
        }
    
    }
   if(cnt%2==1) reverse(all(s));
   cout<<s;
    
}

Game on Ranges
1.对于每一个\(d\),一定是会满足存在\([l,d-1](l<d)\)和\([d+1,r](r>d)\)这样的两个区间,那么便可以遍历每个区间里的数,检查是否每个d匹配的区间是否在给定这些区间里。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
typedef pair<int,int> pii;
#define x first
#define y second
#define all(v) v.begin(),v.end()
#define ull unsigned long long
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};



void solve()
{
    int n;
    cin>>n;
    vector mark(n+1,vector<bool>(n+1));
    vector<int>l(n),r(n);
    for(int i=0;i<n;i++)
    {
        cin>>l[i]>>r[i];
        mark[l[i]][r[i]]=1;
    }
   
    for(int i=0;i<n;i++)
    {
        for(int j=l[i];j<=r[i];j++)
        {
            if((j==l[i] or mark[l[i]][j-1] )and( j==r[i] or mark[j+1][r[i]]))
            //这里一定要把j==l【i】和j==r【i】写在Mark的前面,不然就会报错
            //因为写在前面判断正确以后,就不会判断后面的条件,如果是边界又判断了后面的条件就会报错
            {
                cout<<l[i]<<" "<<r[i]<<" "<<j;
                cout<<endl;
                break;
            }
        }
        
    }
    cout<<endl;
    /*
    for (int i = 0; i < n; ++i) {
            for (int d = l[i]; d <= r[i]; ++d) {
                if ((d == l[i] or mark[l[i]][d - 1]) and (d == r[i] or mark[d + 1][r[i]])) {
                    cout << l[i] << ' ' << r[i] << ' ' << d << '\n';
                    break;
                }
            }
        }
    
    */
    
}


signed main()
{
    ios::sync_with_stdio(0),cin.tie(0);
    int t=1;cin>>t;
    while(t--) solve();
    
}

标签:Summer,int,SMU,mid,long,cin,2024,&&,define
From: https://www.cnblogs.com/swjswjswj/p/18325180

相关文章

  • 2024暑假集训测试12
    前言比赛链接。T2其实和货车运输这题差不多但是由于给定图为树的部分分都没想出来压根没想到重构树,感觉不太应该,思路还是不清晰,赛时没有拿到那个部分分的,因为拿到的都顺着推出正解了;T3是道黑,赛时\(A,B\)循环输出能拿到\(40\)分,赛后重测了;T4题都看不懂。没挂分因为根......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(3)
    Preface徐神是我们的红太阳,最后2min切了一道极难的string使得在这场前期爆炸的局面最后没有崩得太难看这场前期的开题顺序有点问题导致前5题出的很慢,中后期开始三人一人写一题,然后经典三开三卡好在最后我在WA了五发后写对拍把B过了,徐神又压线过了string,但比较可惜的......
  • 2024杭电第三场
    打了个爽!今天打得很稳,基本没有罚时,相当优雅的一场1001 考虑递推,发现答案和因子有关,再加上森林里只有一棵树的情况(i个节点构成的树的种数为f[i-1])#include<bits/stdc++.h>usingnamespacestd;constintN=1e6,mod=998244353;inlineintadd(intx,inty){return(x+=......
  • 2024中国工业互联网安全大赛智能家电行业赛道选拔赛
    流量分析的附件链接:https://pan.baidu.com/s/1UlWzfmsmRsZTR56FzXLuEg?pwd=6666提取码:6666恶意攻击流量描述:应用系统被植入了恶意后门,并从流量中识别其中的flag,提交格式:fag{XXXXXXXX}追踪这个流量解码过滤或者工具一把梭flag{39084EEF2D28E941F53E4A1AA1......
  • 2024牛客多校Bit Common & Bit More Common
    ABitCommon时间限制:3s(C++/C)/6s内存限制:1048576K(C++/C)/2097152K题目描述Giventwointegers\(n\)and\(m\),amongallthesequencescontaining\(n\)non-negativeintegerslessthan\(2^m\),youneedtocountthenumberofsuchsequences\(A\)tha......
  • 2024LitCTF
    secret这首音乐好听,听完了,中间有段杂音去AU看看 中间有一段藏了东西,放大 出flag了flag{Calculate_Step_By_Step}原铁,启动!解压出来是一张二维码扫出来是原神去010看看  看到有压缩包,提取出来得到一个压缩包,里面是四张图片  去网站上合并    Li......
  • 2024矩阵杯初赛
      矩阵杯WP没问题的话就进决赛了 一眼看是USB流量  但这题不考,回到题目CTF异世界的代码监察员lulu猪的照片被人偷拷贝走时触发了保护机制,不仅对图片进行了隐写术.js的加工,还留下了传输的痕迹,神奇的Misc选手能证明这张图片是被偷拷走的吗再看看提示:Tointroduceyou,......
  • 2024 牛客多校 4
    https://ac.nowcoder.com/acm/contest/81599gmin(x,y)没写minWA了一发。居然能过样例,应该会报warning但我从来不看。ctrlbackspace还是得看着j读完就会了但做的并不快,当时k还没读k一开始在一棵线段树上分别维护数字和符号,共用一个mdf,比较混乱,还有顺序问题。重构......
  • 2024-07-26 闲话
    在看老友记的过程中,感受到了常用词对语言理解的重要性。尤其是在听说过程中,需要人们快速反应,可以利用的context非常有限,一旦理解错了idiom,那么会对后面的交互产生较大障碍最近刷了一些quora,也是一样的感觉。但是文字模态实在是比语音模态好多了,阅读时有足够长的上下文和足够......
  • 都2024年了,还在问网络安全怎么入门,气得我当场脑血栓发作
    前言本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。正题首先,在准备进入这个行业之前,我们要问一下我们的内心,工作千......