Skip to content

泉州一中信息学Blog

信息学奥赛技术分享博客

  • 登录
  • 小学oj
  • 中学oj
  • 测试页面1
  • Toggle search form

赛前集训 ——DAY 1

Posted on 2023年10月18日 By Le Porteur d'Ombre 赛前集训 ——DAY 1无评论

太痛苦了
cqr出题堪比李老师

今天改不动题,打了往年回放和一本通域的题库题

[CSP-J2020] 优秀的拆分
改后AC,一开始想的太复杂了,利用贪心思想就能AC了

#include<bits/stdc++.h>
using namespace std;
long long n,a[30];
int main() {
    freopen("power.in","r",stdin);
    freopen("power.out","w",stdout);
    cin>>n;
    if(n%2==1) {
        cout<<-1;
        return 0;
    }
    a[1]=1;
    for(int i=2;i<=26;i++)a[i]=a[i-1]*2;
    for(int i=26;i>=2;i--)
        if(n>=a[i]) {
            cout<<a[i]<<" ";
            n=n-a[i];
        }
    return 0;
}

[CSP-J 2021] 网络连接
仍在改进,感觉越打越乱,不知道错哪了

#include<bits/stdc++.h>
using namespace std;
int n,i,j,q=1,pos,ans,o,u;
bool f=true;
struct Computer {
    int num=0;
    string s1,s2;
    char s3[4];
} a[10001];

int main () {
    cin>>n;
    for(i=1; i<=n; i++) {
        cin>>a[i].s1>>a[i].s2;
        a[i].num=a[i-1].num+1;
    }

    for(i=1; i<=n; i++) {
        int c=1;
        for(j=1; j<=a[i].s2.size(); i++) {
            if(a[i].s2[j]==&#039;.&#039; && a[i].s2[j]==&#039;:&#039; && j==a[i].s2.size()) {
                if(a[i].s2[j]==&#039;.&#039;)ans++;
                if(a[i].s2[j]==&#039;:&#039;)pos++;
                if(j==a[i].s2.size()) {
                    if(a[i].s2[q]==&#039;0&#039;) {
                        a[i].s3[1]=&#039;E&#039;;
                        a[i].s3[2]=&#039;R&#039;;
                        a[i].s3[3]=&#039;R&#039;;
                        break;
                    }
                    /*统计字符个数,特判&#039;:&#039;之后*/

                    int v=j-q;
                    for(int op=v; op>=1; op--) {
                        o += (int)a[i].s2[q] * v;
                    }
                    if(o>65535 || o<0) {
                        a[i].s3[1]=&#039;E&#039;;
                        a[i].s3[2]=&#039;R&#039;;
                        a[i].s3[3]=&#039;R&#039;;
                        break;
                    }
                    //判断&#039;:&#039;之后

                    q=j+1;
                }
                if(a[i].s2[q]==&#039;0&#039;) {
                    a[i].s3[1]=&#039;E&#039;;
                    a[i].s3[2]=&#039;R&#039;;
                    a[i].s3[3]=&#039;R&#039;;
                    break;
                }
                //特判&#039;.&#039;与&#039;:&#039;之前

                int v=j-q;
                for(int op=v; op>=1; op--) {
                    u += (int)a[i].s2[q] * v;
                }
                if(u>255 || u<0) {
                    a[i].s3[1]=&#039;E&#039;;
                    a[i].s3[2]=&#039;R&#039;;
                    a[i].s3[3]=&#039;R&#039;;
                    break;
                }
                //判断&#039;.&#039;与&#039;:&#039;之前

                q=j+1;
            }
        }
        if(ans!=3 || pos!=1) {
            a[i].s3[1]=&#039;E&#039;;
            a[i].s3[2]=&#039;R&#039;;
            a[i].s3[3]=&#039;R&#039;;
        }
        //特判字符个数

        ans=0,pos=0,o=0,u=0;
        //归零

    }

    for(i=1; i<=n; i++) {
        if(a[i].s3[1]==&#039;E&#039;)continue;
        for(q=1; q<=n; q++) {
            if(a[q].s3[1]==&#039;E&#039;)continue;
            if(a[i].s2.size() != a[q].s2.size())continue;
            //特判,加快循环

            for(j=1; j<=a[i].s2.size(); j++) {
                if(a[i].s2[j] != a[q].s2[j]) {
                    f=false;
                    break;
                }
            }
            if(f==true) {
                if(a[i].s1[1]==&#039;S&#039; && a[q].s1[q]==&#039;C&#039;) {
                    a[i].s3[1]=&#039;O&#039;;
                    a[i].s3[2]=&#039;K&#039;;
                    a[q].s3[1]=(char)a[i].num;
                }

                if(a[i].s1[1]==&#039;C&#039; && a[q].s1[q]==&#039;S&#039;) {
                    a[q].s3[1]=&#039;O&#039;;
                    a[q].s3[2]=&#039;K&#039;;
                    a[i].s3[1]=(char)a[i].num;
                }
                //

            }
        }
    }
    for(i=1; i<=n; i++) {
        for(j=1; j<=strlen(a[i].s3); j++) {
            cout<<a[i].s3[j];
        }
        cout<<endl;
    }
    return 0;
}

[CSP-J 2022] 解密
RTE,要用二分算法,但不会,打算明天找个时间做一下
用的暴力解

#include<bits/stdc++.h>
using namespace std;
int n,e,d,f,k;

int main( ) {
    freopen("decode.in","r",stdin);
    freopen("decode.out","w",stdout);
    cin>>k;
    for(int i=1; i<=k; i++) {
        cin>>n>>d>>e;
        for(int j=1; j<=sqrt(n); j++) {
            if((j+n/j==n-e*d+2) && (n%j==0)) {
                cout<<j<<" "<<n/j<<"\n\n";
                f=1;
                break;
            }
        }
        if(!f) {
            cout<<"NO\n\n";
        } else {
            f=0;
        }
    }
    return 0;
}

题库水题复习以前的算法,不具体讨论

训练日志, 入门, 回文自动机, 贪心, 算法, 后缀数组, 后缀自动机, 排列组合

文章导航

Previous Post: CSP Extra Training Day 1 (10.18)
Next Post: 考前冲刺系列2.0

发表回复 取消回复

要发表评论,您必须先登录。

2025年 12月
一 二 三 四 五 六 日
1234567
891011121314
15161718192021
22232425262728
293031  
« 8月    

2024常州 Class Classic OI Problems Contest cqr的长乐集训2023 CZYZ LOC New Game NOI NOIP Password Protected PM_PK Preview Problems Retrospect Selfmade Qusetion STL The end Training Uneasy Problem 蒟蒻 通报

  • 训练日志
  • 链表
  • 入门
  • 模拟
  • dfs序
  • 并查集
  • spfa
  • 最小割
  • 矩阵树定理
  • 仙人掌
  • BSGS
  • 凸包
  • 回文自动机
  • 递推与动归
  • 堆
  • 莫队算法
  • ST表
  • Treap
  • 树套树
  • 可持久化线段树
  • 初赛
  • 搜索
  • 贪心
  • 深度优先搜索
  • 欧拉图
  • dijkstra
  • 费用流
  • 哈夫曼树
  • kruskual
  • 置换
  • 旋转卡壳
  • KMP
  • 区间动归
  • STL
  • 链表
  • 可并堆
  • sply
  • 主席树
  • 可持久化字典树
  • 算法
  • 动态规划
  • 构造
  • 广度优先搜索
  • 最短路
  • floyd
  • 最大流
  • 虚树
  • prim
  • 筛法
  • 半平面交
  • 字典树
  • 背包动归
  • 基础数据结构
  • 分块
  • 线段树
  • 替罪羊树
  • K-DTree
  • 图论
  • 二分法
  • 迭代搜索
  • 拓扑排序
  • 有上下界网络流
  • 生成树
  • 快速幂
  • 后缀数组
  • 树形动归
  • 哈希表
  • 中级数据结构
  • 平衡树
  • 可持久化数据结构
  • 数据结构
  • 三分法
  • 启发式搜索
  • 图的连通
  • 点分治
  • 博弈论
  • AC自动机
  • 状压动归
  • 单调栈
  • 树状数组
  • 高级数据结构
  • OI资料
  • 数学
  • 高精度
  • 差分约束
  • 树上倍增
  • 素数测试
  • 后缀自动机
  • 数位动归
  • 单调队列
  • 新闻
  • 几何
  • 随机化
  • 二分图染色
  • 树链剖分
  • 欧拉函数
  • manacher
  • 斜率优化
  • 离线处理
  • 信息学奥赛学长风采
  • 字符串
  • 二分图匹配
  • prufer编码
  • 卡特兰数
  • 密码学
  • 决策单调
  • 赛后总结
  • 其他
  • 2-SAT
  • 最近公共祖先
  • 矩阵乘法
  • 记忆化搜索
  • 网络流
  • Link cut tree
  • 排列组合
  • 树
  • 高斯消元
  • 乘法逆元
  • 容斥原理
  • 调和级数
  • 概率与期望
  • 模线性方程组
  • 莫比乌斯反演
  • 快速傅里叶变换
  • 扩展欧几里德
  • 最大公约数与最小公倍数

近期文章

  • 中山纪念中学 Day21
  • 中山集训8.15 LAST DAY+集训小结
  • GDNOJ – DAY 18
  • 中山8.14
  • 2025暑假中山集训Day20——8.14

近期评论

归档

  • 2025年8月
  • 2025年7月
  • 2025年2月
  • 2025年1月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月

Copyright © 2025 泉州一中信息学Blog.

Powered by PressBook WordPress theme