zoukankan      html  css  js  c++  java
  • CSP2020-j2 T3表达式(expr)

    本题第一难点:字符串处理

    方法一:纯模拟,时间复杂度O(q*|s|)~估计分数30左右

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char s[1000010];
     4 char c;
     5 int len;
     6 int n, a[100010];
     7 int q, qx;
     8 int stk[1000010], t;//手写栈,t来记录栈顶下标 
     9 void cal(int f) {
    10     int p=0;//p记录第几个X(数),按要求更改取反 
    11     t=0;
    12     for(int i=0; i<len; i++) {
    13         if(s[i]=='x') {
    14             p++;
    15             i++;//遇到x从之后开始将数字字符转换为数字 
    16             int x=0;//计算x之后的数值,并从对应数组中取值,存于x中 
    17             while(s[i]!=' ') {//此处是该题中的难点 
    18                 x=x*10+s[i]-'0';
    19                 i++;
    20             }
    21             i--;//i值恢复到之前 
    22             if(p==f) {//要求取反的下标 
    23                 ++t;
    24                 stk[t]=!a[x];
    25             } else {
    26                 ++t;
    27                 stk[t]=a[x];
    28             }
    29         }
    30         if(s[i]=='!') {
    31             stk[t] = !stk[t];
    32         }
    33         if(s[i]=='&') {
    34             int temp1=stk[t];//写成这样方便调试 
    35             t--;
    36             int temp2=stk[t];
    37             stk[t] = temp1 & temp2;
    38         }
    39         if(s[i]=='|') {
    40             int temp1=stk[t];
    41             t--;
    42             int temp2=stk[t];
    43             stk[t] = temp1 | temp2;
    44         }
    45     }
    46     cout<<stk[t]<<endl;
    47 }
    48 int main() {
    49 
    50     while((c=getchar())!='
    ')
    51         s[len++]=c;
    52 //    for(int i=0; i<len; i++)cout<<s[i];//测试输入代码 
    53 //    cout<<endl;//测试输入代码
    54     cin>>n;
    55     for(int i=1; i<=n; i++)
    56         cin>>a[i];
    57     cin>>q;
    58     while(q--) {
    59         cin>>qx;
    60         cal(qx);//用于传递第几个数取反
    61     }
    62     return 0;
    63 }
  • 相关阅读:
    吴太银:华为消费者云服务Cassandra使用场景与最佳实践
    使用FileZilla连接Linux
    debug 与 release
    删除cocos2dx项目模版
    [转]C/C++控制台输出时设置字体及背景颜色
    iphone调试的一些问题
    [转]Refactoring Game Entities with Components
    使用QT + cocos2dx制作工具
    [转]printf输出字体颜色
    Error: No module named books
  • 原文地址:https://www.cnblogs.com/tflsnoi/p/13968315.html
Copyright © 2011-2022 走看看