Codeforces Round #710 (Div. 3)

简介: A. Strange Table

A. Strange Table


题意:数列按照横排和竖排两种,告诉你行和列和位置x,求他在竖排的时候的数是多少


思路:画画图就出来鸟找规律。


#include<bits/stdc++.h>
#define int long long 
using namespace std;
signed main()
{
  int n,i,j,t,m,x;
  cin>>t;
  while(t--){
    cin>>n>>m>>x;
    int x1,y1;
    x1=(x%n?x%n:n)-1;
    y1=(x%n?x/n:x/n-1);
    int ans=x1*m+y1+1;
    cout<<ans<<endl;
  }
}


B. Partial Replacement


题意:给你一个由“”和“.”两种字符构成的字符串,要求把其中的一部分“**替换成“X”,且第一个和最后一个“”一定会被替换成‘X’,要求两个相邻的‘X’之间距离不超过k,保证有解,求最小替换次数。


思路:用两种下标去记录一种是目前能修改但是不用修改的下标,当遍历到需要修改的时候优先改之前记录的下标,模拟题,不过有细节处理有点多。


#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n,i,j,k,t; 
  string s1;
  cin>>t;
  while(t--){
    cin>>n>>k>>s1;
    int cs=0,zd=0,cnt=0,f=0,mo=0;
    for(i=0;i<s1.length();i++) {
      if(s1[i]=='*'&&f==0)
        f=1,cs=i,cnt++;
      else if(s1[i]=='*')
        zd=i,cnt++;
    }
    if(cnt<=2) {
      cout<<cnt<<endl;
      continue;
    }
    else cnt=2;
    s1[cs]='X',s1[zd]='X';
    for(i=cs;i<=zd;i++){
      if(s1[i]=='*'){
        if(i-cs<=k){
          mo=i;
}
        else {
          cs=mo; cnt++;
          mo=i;
        }
      }
      else if(s1[i]=='X'){
        if(i-cs<=k){
          cs=i;
        }
        else {
          cnt++,cs=i;
        }
      }
    }
    cout<<cnt<<endl;
  }
}

C. Double-ended Strings


题意:有两个字符串 a,b。我们每次操作可以将两个字符串中的一个字符串的最前面一个字符或这最后面一个字符删去(可以将某个字符串通过若干次操作变为空串)。求需要多少次操作才能够使 a,ba,b 两个字符串是相同的。


思路:想用暴力的可是觉得太麻烦了,看到题解发现有substr函数,然后搞了一通也没搞明白,但其实三重循环最外面用长度,然后里面用下标的起点暴力搞就行了。


#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n,i,j,t,k;
  string s1,s2,s3;
  cin>>t;
  while(t--){
    cin>>s1>>s2; 
    int ans=0;
    if(s1>s2) {
      s3=s1;
      s1=s2;
      s2=s3;
    }
    for(k=0;k<=min(s1.length(),s2.length());k++){
      for(i=0;i<s1.length();i++){
        for(j=0;j<s2.length();j++){
          if(s1.substr(i,k)==s2.substr(j,k)&&i+k<=s1.length()&&j+k<=s2.length()){
            ans=max(ans,k);
          }
        }
      }
    }
    ans=(s1.length()-ans)+(s2.length()-ans);
    cout<<ans<<endl;
  }
}


D. Epic Transformation


题意:n 个数,每次可以选择其中两个不同的数进行删除,求最后最少剩下多少个数。


思路:找规律的数论题叭,感觉比前面两个容易点= = ,手动模拟一下删数过程,会发现如果一个数出现的次数大于n/2次的话,那么数就是删不完的,否则如果是奇数就剩1,偶数就是0。


#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+100000;
int a[maxn];
int main()
{
  int n,i,j,t;
  cin>>t;
  while(t--){
    cin>>n;
    map<int ,int >mo;
    int ans=0;
    for(i=0;i<n;i++){
      cin>>a[i];  
      mo[a[i]]++;
      ans=max(ans,mo[a[i]]);
    }
    if(ans<=n/2){
      if(n%2==0)
        cout<<0<<endl;
      else 
        cout<<1<<endl;
      continue;
    } 
    else {
      if(ans==n)
cout<<n<<endl;
      else {
        cout<<(n-((n-ans)*2))<<endl;
      }
    }
  }
}



相关文章
|
6天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
5天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
5天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1071 4
|
8天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
672 2
|
6天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
492 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
|
7天前
|
JavaScript API 开发工具
如何在原生App中调用Uniapp的原生功能?
如何在原生App中调用Uniapp的原生功能?
331 139