首页 > 其他分享 >CodeStar第五周周赛

CodeStar第五周周赛

时间:2022-11-07 21:35:48浏览次数:57  
标签:方案 CodeStar 周周赛 rep cin int 第五 dp

T1:复合逻辑表达式

本题难度中等,线性 \(dp\) 问题。根据最后一个运算递推:如果是 AND,需要两边都是 true;如果是 OR,只需任意一个是 true

S[i] = 'AND'
y[i-1]=T 且 x[i]=T: y[i] = T
y[i-1]=T 且 x[i]=F: y[i] = F
y[i-1]=F 且 x[i]=T: y[i] = F
y[i-1]=F 且 x[i]=F: y[i] = F

y[i]=T 的方案数等于 y[i-1]=T 的方案数
y[i]=F 的方案数等于 y[i-1]=F 的方案数 $\times 2 \ + $ y[i-1]=T 的方案数等于 y[i-1]=T 的方案数

dp[i][0] 表示 y[i]=F 的方案数,dp[i][1] 表示 y[i]=T 的方案数
转移方程:

s[i]='AND' 时:
\( dp[i][0] = dp[i-1][0]*2 + dp[i-1][1] \)
\( dp[i][1] = dp[i-1][1] \)

s[i]='OR' 时:

y[i-1]=F 且 x[i]=F: y[i] = F
y[i-1]=T 且 x[i]=F: y[i] = T
y[i-1]=F 且 x[i]=T: y[i] = T
y[i-1]=T 且 x[i]=T: y[i] = T

\( dp[i][0] = dp[i-1][0] \)
\( dp[i][1] = dp[i-1][1]*2 + dp[i-1][0] \)

答案是 \(dp[n][1]\)

代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)

using namespace std;
using ll = long long;

ll dp[65][2];

int main() {
    int n;
    cin >> n;
    
    vector<string> s(n);
    rep(i, n) cin >> s[i];
    
    dp[0][0] = dp[0][1] = 1;
    rep(i, n) {
        if (s[i] == "AND") {
            dp[i+1][0] = dp[i][0]*2 + dp[i][1];
            dp[i+1][1] = dp[i][1];
        }
        else {
            dp[i+1][0] = dp[i][0];
            dp[i+1][1] = dp[i][1]*2 + dp[i][0];
        }
    }
    
    cout << dp[n][1] << '\n';
    
    return 0;
}

标签:方案,CodeStar,周周赛,rep,cin,int,第五,dp
From: https://www.cnblogs.com/Melville/p/16867534.html

相关文章

  • 2022 第五届强网拟态国际精英挑战赛 Rev WP
    养老选手,六个题目只来得及做了三个windows_call利用KiFastSystemCall进行系统调用,因此本程序中许多系统级函数都是动态调用,不过问题不大,该程序的加密验证逻辑并未用......
  • 第五周总结
    目录人狗大战面向对象核心思路前戏编程思想面向对象之类与函数#类与对象的创建需求:清华大学学生选课系统对象独有的数据对象独有的功能人狗大战面向对象核心思路前戏编程......
  • python学习第五周总结
    面向对象前戏之人狗大战#编写代码简单的实现人打狗狗咬人的小游戏(剧情需要)"""推导步骤1:代码定义出人和狗"""person1={'name':'jason','age':18,......
  • [CTF] 2022 第五届强网拟态杯 WP
    [Re]Comeongo反编译找到两串疑似密文的字符串动调跟随逻辑到这里可以知道name和passwd都是16位字符串继续往下走,check1中的加密有一个字母表,特点是无0和O,可......
  • 13第五章:【01】单例模式
    一、单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只能提供一个取得其对象实例的方法(静态方法)。......
  • 第五讲 异常处理 课后总结
    主要内容:1.Java异常处理基础 2.“受控(checked)”的异常 3.自定义异常与异常处理链 异常(Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中......
  • 第五章26
    【题目描述】 键盘输入一段英文,输出其中的单词个数。 【输入】 一段英文单词 【输出】 单词的个数 【样例输入】 IloveChinaandthepeople↙ ......
  • 第五章23
    【题目描述】 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 【输入】 第......
  • 第五章24
    【题目描述】 一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。根据总人数,计算出男人、女人和小孩各多......
  • 第五章25
    【题目描述】 爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶。若每步跨6阶,则最后剩下5阶。只有每步......