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

面试压力测试题情景题_压缩弹簧经常使用会发生什么题解状态压缩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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle数据库菜鸟入门

    oracle数据库菜鸟入门所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。一、数据以文本形式保存第一步,就是将所要保存的数据,写入文本文件。这个文本文件就是你的数据库。为了方便读取,数据必须分成记录,每一条记录的长度规定为等长。比如,假定每条记录的长度是800字节,那

    2022年8月30日
  • android m 滑动解锁,滑动解锁Slideunlock[通俗易懂]

    android m 滑动解锁,滑动解锁Slideunlock[通俗易懂]滑动解锁(Slideunlock)在之前的塞班机上可谓光茫四射,惹得一身荣耀,如今登入android市场,依然备受关注,多种解锁截屏法方式,满足不同人的需求。软件介绍滑动解锁(Slideunlock),一款仿Iphone又超越Iphone解锁和加锁的实用软件,华丽百变的UI,多种感应器加锁解锁功能,是您可以做到无需触碰手机即可轻松完成加锁或解锁操作。此软件的Symbian版曾流行国内外,一度在No…

    2022年6月15日
  • 详解scheduleAtFixedRate与scheduleWithFixedDelay原理

    详解scheduleAtFixedRate与scheduleWithFixedDelay原理前言前几天,肥佬分享了一篇关于定时器的文章你真的会使用定时器吗?,从使用角度为我们详细地说明了定时器的用法,包括fixedDelay、fixedRate,为什么会有这样的区别呢?下面我们从源码角度分析下二者的区别与底层原理。jdk定时器这里不再哆嗦延迟队列、线程池的知识了,请移步下面的链接延迟队列原理,http://cmsblogs.com/?p=2448线程池原理,http://…

    2022年10月24日
  • win10 使用 cmd 查看端口占用情况,关闭占用端口的相关程序「建议收藏」

    win10 使用 cmd 查看端口占用情况,关闭占用端口的相关程序「建议收藏」前言:工作中常用端口偶尔被占用,特写此文章记录1.查看被占用的端口号执行命令:netstat-ano|findstr端口号2.通过PID查看占用端口的程序执行命令:tasklist|findstrPID3.通过PID关闭占用的程序此方法可以通过cmd关闭也可以通过任务管理器关闭CMD执行命令:taskkill/T/F/PIDPID通过任务管理器找到对应的PID程序右键结束程序…

    2022年5月12日
  • Mac录屏转GIF「建议收藏」

    Mac录屏转GIF「建议收藏」首先使用QuickTimePlayer录屏,软件如下:使用方法:1.点击【新建屏幕录制】2.点击录制按钮,可以自行选定特定区域,也可以录制整个屏幕,自己设置3.完成之后,电脑顶部右边有结束按钮存储到需要的位置,下面开始转GIF所需工具:python和两个包:首先控制台检查版本,控制台先后输入:python3-Vpip3-V没有的先下载,有的话太低了自行升级安装需要的两个包:先安装:pip3installrequests-i再安装:pip3install

    2022年9月24日
  • C++ seekg()函数「建议收藏」

    C++ seekg()函数「建议收藏」seekg()是对输入流的操作seekp()是对输出流的操作seekg()Movesthereadpositioninastream.//移动在流中读的位置————————————————————————basic_istream<Elem,Tr>&seek…

    2022年4月28日

发表回复

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

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