面试压力测试题情景题_压缩弹簧经常使用会发生什么

面试压力测试题情景题_压缩弹簧经常使用会发生什么题解状态压缩dp,f[i][j]代表第i行状态为j的方案数#include<bits/stdc++.h>using namespace std;#define x first#define y second#define send string::npos#define lowbit(x) (x&(-x))#define left(x) x<<1#define right(x) x<<1|1#define transformu(s) tr..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述
在这里插入图片描述
题解
状态压缩dp,f[i][j]代表第i行状态为j的方案数


#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define send string::npos
#define lowbit(x) (x&(-x))
#define left(x) x<<1
#define right(x) x<<1|1
#define transformu(s) transform(s.begin(), s.end(), s.begin(), ::toupper)
#define transformd(s) transform(s.begin(), s.end(), s.begin(), ::tolower)
typedef long long ll;
typedef pair<long long,long long> PII;
typedef pair<double,double>PDD;
typedef struct Node * pnode;
const long long N = 1e3  + 10;
const long long M = 4 * N;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
const long long Mod = 4e8;
const long long INF = 0x3f3f3f3f;
const double eps = 1e-6;
PII g[N * N ];
int a[N];
int cnt = 0;
int f[2][N * N];
int z[N];
int n;
bool check(int x){ 
   
    int a = g[x].x,b = g[x].y;
    for(int i = a;i <= a + b - 1;i ++){ 
   
        if(z[i] == 0)return false;
    }
    return true;
}
int main(){ 
   
    cnt ++;
// cout<<cnt<<endl;
    cin>>n;
    for(int len = 1;len <= n;len ++){ 
   
        for(int i = 0;i <= n - len;i ++){ 
   
            g[cnt].x = i,g[cnt].y = len;
            cnt ++;
        }
    }
// cout<<cnt<<endl;
    char x;
    f[0 & 1][0] = 0;
    for(int i = 1;i <= n + 1;i ++){ 
   
        memset(z,0,sizeof z);
        for(int j = 0;j < n && i != n + 1;j ++){ 
   
            cin>>x;
            if(x == '.')z[j] = 1;
        }
// for(int j = 0;j < n;j ++)cout<<z[j]<<endl;
        for(int j = 0;j < cnt;j ++){ 
   
            if(check(j) && j != 0){ 
   
                f[i & 1][j]  = f[(i - 1) & 1][j] + 1;
            }
            else if(j != 0){ 
   
                f[i & 1][j] = 0;
            }
            else if(j == 0){ 
   
                for(int k = 0;k < cnt;k ++)
                f[i & 1][j] += f[(i - 1) & 1][k];
                cout<<f[i & 1][j]<<endl;
            }
        }
    }
// cout<<n + 1<<endl;
    cout<<f[(n + 1) & 1][0]<<endl;
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168658.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月8日 下午6:36
下一篇 2022年8月8日 下午6:46


相关推荐

  • 3、JSON处理( n8n 节点用于交换信息的语言)

    3、JSON处理( n8n 节点用于交换信息的语言)

    2026年3月13日
    2
  • 深入Vue原理_全面剖析发布订阅模式

    深入Vue原理_全面剖析发布订阅模式文章目录发布订阅模式优化优化思路思考理解发布订阅模式 自定义事件 收集更新函数触发更新函数 6 5 总结总结写在最后上节中我们提到下方更新的问题 无法做到精准更新 divid app pv text name pv text age pv text name script letdata script pv text name pv text age pv text name divid app

    2026年3月20日
    2
  • mac使用tree命令

    mac使用tree命令brewinstalltreetreetree-L1#深度1treeufo  #展示子目录find.|xargsgrep-ri""  #-r递归-i忽略大小写tree-N  #解决汉语乱码 命令行的双击tab太好用现在想要进入一个比较深的目录每进入一层就ls一下太慢了cd到一个目录下之后就双击tab…

    2022年7月24日
    11
  • qcow2文件分析

    qcow2文件分析Aqcow2virtua atwolevel nbsp lookuptable areferenceta anddataclust as nbsp showninFigur Theimagehead nbsp ofafilesyste whichco

    2026年2月18日
    2
  • constexpr变量

    constexpr变量C 11 规定 可以将变量声明为 constexpr 用于编译器在编译阶段来验证变量的值是不是常量表达式 因此 constexpr 修饰的变量必须用常量 or 常量表达式来初始化 到目前为止 算数类型 指针 引用都可以定义为 constexpr 而 Io 自定义类 string 等不可以 constexprint 20 正确 20 是常量表达式 constexprint i

    2026年3月19日
    2
  • git如何退出vim_git提交的命令

    git如何退出vim_git提交的命令有很多方法:退出Vi当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出,返回到shell。在末行模式下,输入命令:wVi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用

    2022年8月24日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号