首页 > 其他分享 >2024.9.23 cj 训练总结

2024.9.23 cj 训练总结

时间:2024-09-28 22:49:17浏览次数:6  
标签:字符 题目 23 int 2024.9 cj 然后 异或 include

T1

image
image

这道题目仔细观察就会发现:

  1. 异或
  2. k=1

这就很好办,考虑 k=1 怎么解 3 1 2 4 5 6 7.......... 即可。

异或,找规律发现有很多数字的异或值为0的。最后的答案是有规律的。

不知道什么问题,场上就70分。

T2

image
image

这道题目基本上没啥思路,就是弄了个桶10分。

正解:

由于这个题目的字符集大小只有 \(26\) ,我们显然可以枚举出现次数最多与最少的字符是什么。然后把这两个字符离散出来问题就变成了只有 \(1\) 与 \(-1\) 且强制选取至少一个 \(-1\) 的最大连续子段和问题。

然后关于离散,我们显然可以用 vector 把每中字符的出现位置记录下来。然后用类似归并的方法求解即可。

关于强制选取至少一个 \(-1\) 的最大连续子段和问题,我们可以先把答案预设为 \(-1\) 然后到第一个 \(-1\) 时不减即可解决。

由于每种字符作为最大与最小总共被枚举 \(52\) 次,所有字符的数量和为 \(n\)

所以时间复杂度为 \(O(52n)\)

空间复杂度 \(O(n)\)

Code

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;

int n;
vector<int> tong[30];
char s[1000005];
int ans;

int main(){
    cin>>n>>s;
    for(int i=1;i<=n;++i){
        tong[s[i-1]-'a'].push_back(i);
    }
    for(int i=0;i<26;++i){
        if(!tong[i].size()){
            continue;
        }
        for(int j=0;j<26;++j){
            if(!tong[j].size() || i==j){
                continue;
            }
            int num1=0;int num2=0;
            bool f=0;
            int cnt=-1;
            while(num1<tong[i].size() || num2<tong[j].size()){
                int a1,a2;
                if(num1==tong[i].size()){
                    a1=1e9;
                }else{
                    a1=tong[i][num1];
                }

                if(num2==tong[j].size()){
                    a2=1e9;
                }else{
                    a2=tong[j][num2];
                }

                if(a1<a2){
                    num1++;
                    cnt++;
                }
                if(a1>a2){
                    if(f==1){
                        cnt--;
                    }
                    num2++;
                    f=1;
                }
                if(cnt<0){
                    f=0;
                    cnt=-1;
                }
                ans=max(ans,cnt);
            }
        }
    }
    cout<<ans<<'\n';
    return 0;
}

T3

image
image
image

这道题目我就是对于 sub1的分就是 st表 维护一下。
对于 sub2 的分数就是纯暴力。

正解:

这道题目乍一看并没有什么思路,然后会很沮丧地发现其实两条边根本就是个乘法,根本贪心不了。

当时对这种玄学的东西一看就是 dp,然后又觉得是个斜率优化,因为有值相乘,但是dp根本设计不出来

真正的正解:
image

然后原题在 这里 ,但是题解并没有看懂。

单调站维护还可以,但是后面的树状数组维护真的很迷糊。

T4

image

完全不会。

tj:
image
原题

标签:字符,题目,23,int,2024.9,cj,然后,异或,include
From: https://www.cnblogs.com/blogs-for-Ruan-ji/p/18438548

相关文章

  • 08 常用:写入 读取文件格式为:alex|123
    练习1:请将user中的元素根据_链接,并写入'a1.txt'的文件"""user=['alex','eric']data="_".join(user)file_object=open('a1.txt',mode='w',encoding='utf-8')file_object.write(data)fil......
  • 2023龙信题目(部分)
    借着平台开出来的测试题目,复现下23的龙信,虽然24的就开始了2333。题目应该也不完整,感觉备份文件还是很坑的。移动终端取证(共12题,合计24分)1.请分析涉案手机的设备标识是_______。(标准格式:12345678)850696252.请确认嫌疑人首次安装目标APP的安装时间是______。(标准格式:2023-09-13......
  • 全球200多个国财政数据(1991-2023年)
    财政数据集是了解一个国家政府收入和支出情况的重要工具。通过分析这些数据,可以揭示政府在教育、卫生、基础设施等领域的投资比重,以及国家的财政赤字和债务水平。1991-2023年全球200多个国家财政数据资源-CSDN文库数据来源于世界银行、国际货币基金组织、联合国等国际组织的......
  • 2024.9.28 代码源模拟赛
    省流:\(45+20+5+0=70\)简称:唐诗在此膜拜\(klz\)\(Heldivis\)\(Sorato\)\(czl\)\(Ech0\_7\)yxanslihe_qwq大佬T1先看的T1,想了一个拓排(其实是看错题了),然后过了第一个样例,然后咋调都过不去,就去码暴力了。过了大概10min发现看错题了,然后一会就想出来个\(O(n^2)\)......
  • 2024.9.28 计划
    项目学习ROS第二章学完背包问题求方案数背包问题求具体方案总结ROS第二章总结三种基本的通信方式都解决了。步骤和框架参照上两篇和ubantu中的demo框架即可。前两种通信方式的比较:发布-订阅模式服务器通信通信模式发布/订阅请求/响应同步性异步同......
  • 团队练习记录2024.9.28
    B-MagicalSubsequencehttps://codeforces.com/gym/103447/problem/B桶+stack,这里用map会TLEstack用一次时间复杂度\(O(1)\)\(156ms/1000ms\)#include<iostream>#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;voidfio(){ ios::sync_wit......
  • CSP-S 2022~2023 补题
    下面的代码都是远古代码,不打算重写了。CSP-S2023T1密码锁题意:一个密码锁上有\(5\)个位置,每个位置上的数字是\(0\sim9\)的循环,每次打乱会选择一或两个相邻位置同时循环移动。给定\(n\)个打乱后的状态,求有多少种可能的原状态。\(n\le8\)。容易发现可能的状态数......
  • Cadence23中的一些设置
    AllegroAIDTDDR3自动等长Auto-InteractiveDelayTune:Cadence设置好规则之后再做等长就很方便,可以自动等长:点击SELECT可以选中这一组的线,并进行高亮:相对误差是15mil:选择Accordition:可以通过这个按键查看到底有没有达到等长规则:直接框选刚才做过等长的网络......
  • 237 Sending a Http Request to Store Coach Data(加入后端)
    步骤1、准备后端程序后端程序使用ASP.NETWebAPI编写,见如下源码链接中“237-CoachWebAPI”文件夹黄健华/Vue3用VS2022打开后,需要做如下操作:1)appsettings.json文件中的数据库连接字符串改成自己的(需要新建数据库);2)执行Update-DataBase命令;如下两个专栏可以帮助大家学......
  • gjoi 2024.9.27
    assert(0);不嘻嘻。T1棋局首先不难列出dp方程\(f[i][j]\)表示玩了\(i\)局A赢了\(j\)局的方案数(我们这里钦定玩了\(R_m+R_h\)局A赢了\(R_m\)局),转移\(f[i][j]\times\frac{j}{i}\tof[i+1][j+1],f[i][j]\times\frac{i-j}{i}\tof[i+1][j]\),仔细思考/画图/大眼......