首页 > 其他分享 >csp-j2022 游记

csp-j2022 游记

时间:2022-11-20 13:38:24浏览次数:41  
标签:aa return j2022 int long csp freopen sa 游记

第一题

随便写了写代码如下

#include <bits/stdc++.h>
using namespace std;
string sa;
long long a,b,c=1;
int main(){
    freopen("pow.in","r",stdin);
    freopen("pow.out","w",stdout);
    cin>>sa>>b;
    int len=sa.length();
    if(len>9){
        cout<<-1;
        return 0;
    }
    for(int i=1;i<=len;i++){
        a=a+sa[i-1]-'0';
        if(i!=len) a=a*10;
    }
    if(a>1e9){
        cout<<-1;
        return 0;
    }
    for(int i=1;i<=b;i++){
        if(c*a>1e9){
            cout<<-1;
            return 0;
        }
        c*=a;
    }
    cout<<c;
    return 0;
}

第二题

数学题,当时没想出来,写了个暴力

#include <bits/stdc++.h>
using namespace std;
int k;
long long n,e,d,h;
bool flag;
int main(){
    freopen("decode.in","r",stdin);
    freopen("decode.out","w",stdout);
    cin>>k;
    while(k--){
        cin>>n>>d>>e;
        flag=0;
        h=e*d-1;
        for(int i=1;i<=sqrt(n);i++){
            if(n%i!=0) continue;
            long long p=i,q=n/p;
            if((p-1)*(q-1)==h){
                cout<<p<<" "<<q<<endl;
                flag=1;
                break;
            }
        }
        if(flag==0){
            cout<<"NO"<<endl;
        }
    }
    return 0;
}

第三题

大烦题,90%的时间全花在这了,结果是对的,但对短路的判断没有思路

当时思路

  1. 先将括号内的式子单独拿出计算,将结果返回
  2. 计算&
  3. 计算|

写了个函数,又臭又长,代码如下

#include <bits/stdc++.h>
using namespace std;
string s;
int a,b;
int suan(string s){
    if(s.length()==3){
        if(s[1]=='&'){
            if(s[0]=='0'){
                a++;
                return 0;
            }else return (s[0]-'0')&(s[2]-'0');
        }else{
            if(s[0]=='1'){
                b++;
                return 1;
            }else{
                return (s[0]-'0')|(s[2]-'0');
            }
        }
    }
    int ff=0;
    stringstream sa;
    string aa;
    int last;
    for(int i=0;i<s.length();i++){
        if(s[i]=='('&&ff==0) last=i;
        if(s[i]=='(') ff++;
        else if(s[i]==')'){
            ff--;
            if(ff==0){
                stringstream c;
                for(int j=last+1;j<i;j++){
                    c<<s[j];
                }
                string sc;
                c>>sc;
                sa<<suan(sc);
            }
        }else if(ff==0){
            sa<<s[i];
        }
    }
    sa>>aa;
    sa.clear();
    ff=-1;
    for(int i=0;i<aa.length();i++){
        if(aa[i]=='|'){
            if(aa[i-1]!='&') sa<<aa[i-1]<<aa[i];
            else sa<<aa[i];
        }
        if(aa[i]=='&'){
            stringstream c;
            if(ff==-1){
                c<<aa[i-1]<<aa[i]<<aa[i+1];
            }else{
                c<<ff<<aa[i]<<aa[i+1];
            }
            string sc;
            c>>sc;
            // sa<<suan(sc);
            if(aa[i+2]=='&'){
                ff=suan(sc);
            }else{
                ff=-1;
                sa<<suan(sc);
            }
        }
    }
    sa>>aa;
    sa.clear();
    ff=-1;
    for(int i=0;i<aa.length();i++){
        if(aa[i]=='|'){
            stringstream c;
            if(ff==-1){
                c<<aa[i-1]<<aa[i]<<aa[i+1];
            }else{
                c<<ff<<aa[i]<<aa[i+1];
            }
            string sc;
            c>>sc;
            // sa<<suan(sc);
            if(aa[i+2]=='|'){
                ff=suan(sc);
            }else{
                ff=-1;
                sa<<suan(sc);
            }
        }
    }
    sa>>aa;
    if(aa[0]=='0'){
        return 0;
    }else{
        return 1;
    }
    return 0;
}
int main(){
    freopen("expr.in","r",stdin);
    freopen("expr.out","w",stdout);
    cin>>s;
    cout<<suan(s)<<endl;
    cout<<a<<" "<<b;
    return 0;
}

第四题

没时间写了,就属于有点脑残

大总结

我炸了

问题

  • 时间分配有问题
  • 对数学题没有清晰判断

解决方法

  • 先读一遍所有题,又较清晰的理解后再开始写
  • 注意时间分配

分数

标签:aa,return,j2022,int,long,csp,freopen,sa,游记
From: https://www.cnblogs.com/Zhao-zzZ/p/csp-j_2022_youji.html

相关文章

  • CSP2022游记
    远古势力的卷土重来Day0在机房里颓,背了背对拍(虽然S组没用上)颓废好累啊Day0.5考J组为什么不能带零食进考场啊T1一眼看出要特判,水题写了对拍拍上,心情愉悦T2本想......
  • 第五十二章 开发自定义标签 - Using csr %CSP.AbstractAtom Write Methods
    目录第五十二章开发自定义标签-Usingcsr%CSP.AbstractAtomWriteMethodsWriteTextMethodWriteCSPTextMethodWriteExpressionTextMethodWriteServerMethodWriteC......
  • CSP-J 2022游记
    本文章同步发布于洛谷博客初赛初赛-90天从今年暑假开始学习。教练说我很有天赋,所以暑假直接跟着入门班上。整个暑假就是在持续学基础知识,最后几周开始刷前几年的复......
  • CSP-S2022
    勉强混到CQ一等但是差\(5\)分\(7\)级勾(哭)。A.假期计划我们先不考虑\(4\)个点,考虑\(2\)个点的情况。我们发现可以枚举\(a\)点,再找到\(a\)能到达且\(1\)......
  • 2022csp普及组真题:解密(decode)
    2022csp普及组真题:解密(decode)题目【题目描述】给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni,ei,di,求两个正整数 pi,qi, 使 ni=pi×qi, ei×......
  • 第五十一章 开发自定义标签 - 使用%CSP.Rule方法
    第五十一章开发自定义标签-使用%CSP.Rule方法类中的%CSP.Rule包含几个可在<csr>规则定义中使用的实例方法。这些方法可以是两种类型之一:只读并返回元素值的方法......
  • CSP-J2022
    D整活导致\(400\)变\(390\)哭。A.乘方其实枚举就能过,特判\(a=1\)就行了。但是考场上看这题太像快速幂了就码了个快速幂。普通的快速幂:(longlong)tot=1;whi......
  • 寻梦环游记
    寻梦环游记一个月前就想看了但一直没看这部电影,看后也是感慨不小。当我们处在不得不从梦想与家人之间中选择一个后,我们会怎样去抉择,剧中给出了主人公的答案,不管我们如何抉......
  • CSP 202206-1 归一化处理 C++
    1#include<iostream>2#include<vector>3#include<math.h>45intmain(){6intx{},sum{};7std::cin>>x;8std::vector<int>n(x,0);......
  • CSP 201403-1 相反数 C++
    1#include<iostream>2#include<vector>3#include<algorithm>45intmain(){6intx{},sum{};7std::cin>>x;8std::vector<int>n(......