Codeforces Round #719 (Div. 3)(A-E)

简介: 算法

A. Do Not Be Distracted!


题意:如果一个字符串中一个字母间断出现,那么老师会怀疑,判断老师是否怀疑。

思路:闭着眼睛敲比速度:)

 #include<bits/stdc++.h>
 using namespace std;
int main()
{
    int n,i,j,t;
    cin>>t;
    while(t--){
        int n;
        map<char ,int >mo;
        string s1;
        cin>>n;cin>>s1;
        int flag=0;
        for(i=0;i<n;i++){
            if(i!=0){
                if(mo[s1[i]]!=0){
                    if(s1[i-1]==s1[i]){
                        continue;
                    }
                    else {
                        flag=1;
                    }
                }
            }
                        mo[s1[i]]++;
        }
        if(flag==1) {
            scNO;
        }
        else {
            scYES;
        }
    }
    return 0;
}


B. Ordinary Numbers

题意:求1-n中有几个数里只有一种数字。

思路:1-10 1 2 3 4 5 6 7 8 9

11-100 11 22 33 44 55 66 77 88 99

然后就继续这么搞,先判断位数,然后再判断当前位大小就行,模拟搞

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i,j,t;
    cin>>t;
    while(t--){
        cin>>n;
        int d1=n,cnt=0;
        while(d1!=0){
            d1/=10;
            cnt++;
        }
        int ans=0;
        ans+=max(0,cnt-1)*9;
        for(j=1;j<=9;j++){
            int mm=j;
            for(i=0;i<cnt-1;i++){
                   mm*=10;mm+=j;
            }
            if(n>=mm) ans++;
            else break;
        }
        cout<<ans<<endl;
    }
}


C. Not Adjacent Matrix


题意:给你一个数字n,要求你用n^2个数去建一个正方形边长为n,且一个数上下左右与之相连的数二者差要大于1

思路:不难发现规律其实就是先把奇数列出来再列偶数,然后顺序输出就行比如:

1 3 5

7 9 2

4 6 8

顺便吐槽一下今晚排队那么久,:(导致我最后D过完之后才发现C没过:(

 #include<bits/stdc++.h>
 using namespace std;
int a[102][105];
int main()
{
    int n,i,j,t;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        int d1=n*n,m1=-1;
        int ji=d1%2==0?d1-1:d1;
        int flag=0,m2=2;
        int ou=d1%2==0?d1:d1-1;
        if(n==2){
            cout<<-1<<endl;
            continue;
        }
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++){
                  if(m1==ji) flag=1;
                  if(flag==0){
                     m1+=2;
                    a[i][j]=m1;
                  }
                  if(flag==1){
                    a[i][j]=m2;
                    m2+=2;
                  }
            }
        }
        for(i=1;i<=n;i++){
            for(j=1;j<=n-1;j++){
                cout<<a[i][j]<<" ";
            }
            cout<<a[i][j]<<endl;
        }
    }
}


D. Same Differences


题意:给你一个数组求满足下面条件的有多少对。3.png

思路:把上面的式子转化一下改为aj-j=ai-i,就可以发现其实只要求这个数和它的下标差有多少对,然后求个等差就行.


#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=2e5+1000;
struct node {
    int a,b;
}mo[maxn];
signed main()
{
    int t,n,i,j;
    cin>>t;
    while(t--){
        cin>>n;
        map<int ,int >m1;
        for(i=1;i<=n;i++){
            cin>>mo[i].a;
            mo[i].b=i-mo[i].a;
            m1[mo[i].b]++;
        }
        int ans=0;
        for(i=1;i<=n;i++){
            int d1=m1[mo[i].b];
            m1[mo[i].b]=0;
         //   cout<<d1<<"*"<<endl;
            ans+=(d1-1)+((d1-1)*(d1-2))/2;
        }
        cout<<ans<<endl;
    }
}


E. Arranging The Sheep


题意:‘*’代表羊,‘.’代表草地,给你一个字符串,要求把所有的羊放在一排

思路:这题思路挺巧妙的,下面的1就是代表羊哈,x就是草地,其实可以发现我要想办法把1并在一起,可以把已经连续的一段1或者连续的一段x合并,而合并其实只有两种情况,一种是从把右边的一段并在左边,一种是把左边的并在右边,可以先从头到尾把每一段合并操作的花费求出来,再倒着求一遍,然后取最小值。

4.png

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e6+100;
int sum1[maxn];
int sum2[maxn];
signed main()
{
    string s1;
    int t,i,j,n;
    cin>>t;
    while(t--){
        cin>>n>>s1;
        int ans1=0,ans2=0,cnt1=0,cnt2=0,flag=0,cc=0,ccc=0;
        for(i=0;i<n;i++){
            if(s1[i]=='*'){
                if(flag==1){
                    flag=0;
                    ans1+=(cnt1)*cnt2;
                    int dd=cnt1*cnt2;
                    sum1[cc++]=dd;
                }
                cnt1++;
                cnt2=0;
            }
            else {
                if(cnt1>0){
                    flag=1;
                }
                cnt2++;
            }
        }
        reverse(s1.begin(),s1.end());
        cnt1=0,cnt2=0,flag=0;
          for(i=0;i<n;i++){
            if(s1[i]=='*'){
                if(flag==1){
                    flag=0;
                    ans2+=(cnt1)*cnt2;
                    int dd=cnt1*cnt2;
                    sum2[ccc++]=dd;
                }
                cnt1++;
                cnt2=0;
            }
            else {
                if(cnt1>0){
                    flag=1;
                }
                cnt2++;
            }
        }
        int ans3=0;
        for(i=0;i<cc;i++){
            ans3+=min(sum1[i],sum2[cc-1-i]);
        }
            cout<<ans3<<endl;
       }
    return 0;
}


相关文章
|
人工智能 算法 物联网
每日一题(day2)
每日一题(day2)
423 1
每日一题(day2)
|
存储 JSON Java
Python入门笔记(三)(上)
Python入门笔记(三)
453 0
Python入门笔记(三)(上)
|
3天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8198 37
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
3天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
555 4
|
3天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
515 3
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
2天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
3天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
690 149
|
3天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
1920 10
|
3天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
3天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1321 2

热门文章

最新文章