Educational Codeforces Round 106 (Rated for Div. 2)

简介: A. Domino on Windowsill

A. Domino on Windowsill


题意:先给你三个数n,k1,k2,分别是在第一行和第二行能放白块位置的大小,然后告诉你a(白块),b(黑块)的数量,且大小都是2x1,横竖都可以,看能否把a+b个库洛米摆下。


思路:用白色的块找下规律,同理找黑色块规律即可。


20210324211456766.png

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int k1,k2,t,i,j,a,b,w,n;
  cin>>t;
  while(t--){
    cin>>n>>k1>>k2>>w>>b;
    int ans1=0,ans2=0;
    ans1=min(k1,k2)+abs(k1-k2)/2;
    int he1=n-k1,he2=n-k2;
    ans2=min(he1,he2)+abs(he1-he2)/2;
    if(ans1>=w&&ans2>=b){
      cout<<"YES"<<endl;
    } 
    else {
      cout<<"NO"<<endl;
    }
  }
}


B. Binary Removals


题意:题面很复杂,大概就是说不能删除连续的位置的字符,问是否能删成一个递增的序列,求该序列只有0,1两种字符。


思路:找不能的情况很明显就是当出现11之后出现00的情况。\


#include<bits/stdc++.h>
using namespace std;
int main()
{
  string s1;
  int n,i,j,t;
  cin>>t;
  while(t--){
    cin>>s1;
    int flag=0,f1=0;
    for(i=0;i<s1.length()-1;i++){
      if(s1[i]=='1'&&s1[i+1]=='1'){
        flag=1;
      }
      if(flag==1){
        if(s1[i]=='0'&&s1[i+1]=='0')
          f1=1;
      }
    }
    if(f1==1){
      cout<<"NO"<<endl;
    }
    else {
      cout<<"YES"<<endl;
    }
  }
}


C. Minimum Grid Path


题意:从原点出发,目标是N*N,且走的方向只有右和上,很明显向上n次,向右n次,且题目给出每一次行走的路径所要的消耗Ci,自己选择行走的长度,求最少的话费。


思路:首先把所给的数组看成两部分,每隔一个数就是相同的部分,然后去选,因为如果我要找最小的情况需要考虑之前的花费如果太大了则可能不是最优解,所以用前缀和先存下选到当前位置所需要的话费再累乘一下,注意数据范围。


#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int maxn=1e5+10000;
int a[maxn],sum[maxn];
signed main()
{
  int n,i,j,t;
  cin>>t;
  while(t--){
    cin>>n;
    memset(sum,0,sizeof(sum));
    for(i=1;i<=n;i++){
      cin>>a[i];
    }
    sum[1]=a[1]; for(i=2;i<=n;i++) sum[i]+=(sum[i-1]+a[i]);
    int cnt1=1,cnt2=0,min1=a[1],min2=a[2],ans;
    for(i=2;i<=n;i++){
      if(i==2){
        cnt2++;
        ans=sum[i]+(n-cnt1)*min1+(n-cnt2)*min2;
      }
      else if(i%2==0){
      cnt2++;
        min2=min(a[i],min2);
        ans=min(ans,sum[i]+(n-cnt1)*min1+(n-cnt2)*min2);
      }
      else {
        cnt1++;
        min1=min(a[i],min1);
        ans=min(ans,sum[i]+(n-cnt1)*min1+(n-cnt2)*min2);
      }
    }
    cout<<ans<<endl;
  }
}


总结:


C题一开始想dp,后来觉得太复杂,准备放弃的时候看到有三千人过了=。=估计是个思维,想了想就出来了,果然自信最重要了呢。

相关文章
|
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