【CQOI 2012】【JZOJ 4700】【BZOJ 2669】局部极小值

基于ESP32-C3的物联网硬件设计:从免费工具链到PCB打样全流程实战 在物联网和嵌入式开发领域,硬件设计是连接软件逻辑与物理世界的关键环节。其核心原理在于通过电路设计将微控制器、传感器、通信模块等电子元件有机整合,实现特定功能。掌握硬件设计能力的技术价值在于能够自主实现产品原型,优化成本与性能,并深入理解系统底层运作。常见的应用场景包括智能家居节点、环境监测设备、工业传感终端等。本文以热门的ESP32-C3 RISC-V物联网芯片和广泛使用的KiCad免费EDA工具为例,详细解析了从核心器件选型、射频电路布局、PCB设计规则到Gerber文件生产的完整流程,并分享了在嘉立创平 阅读详情

Description

这里写图片描述

抽象题意:在一个矩阵中依次填入数,要求只有规定的数是小于它周边的数。

Solution

先来考虑一下当每一个.都有与它相邻的X,
因为棋盘很小,最多有8个X,
用状态压缩:
fi,S表示当前选到数字i,状态为S,

fi,S=fi−a,S∗(RS−i+1)+∑k∈Sfi−1,K

RS表示在i的状态下,总共有多少个位置可以填,
我们发现,这样会算重,所有要用容斥原理来做,
复杂度:O(2m1∗2k∗nm),k表示有多少个X,m1表示可以填的位置数;

Code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define OK(q,w) ((q)>0&&(w)>0&&(q)<=n&&(w)<=m)
using namespace std;
typedef long long LL;
const int N=10,mo=12345678;
int m,n,ans,m1;
int a[N][N];
LL R[1<<10]; 
LL f[N*N][1<<10];
int er[21];
bool z[N][N],z1[N][N];
int fx[8][2]={{-1,0},{-1,-1},{0,-1},{-1,1},{1,-1},{1,1},{1,0},{0,1}};
bool OKX(int i,int j,int e)
{
    fo(k,0,e)if(OK(i+fx[k][0],j+fx[k][1]))if(a[i+fx[k][0]][j+fx[k][1]])return 1;
    return 0;
}
int doit()
{
    fo(I,0,er[m1+1]-1)
    {
        R[I]=0;
        fo(i,1,n)fo(j,1,m)
        {
            bool z=1;
            fo(k,0,7)if(OK(i+fx[k][0],j+fx[k][1]))
            if(a[i+fx[k][0]][j+fx[k][1]]&&!(er[a[i+fx[k][0]][j+fx[k][1]]]&I))z=0;
            if(((er[a[i][j]]&I)||!a[i][j])&&z)R[I]++;
        }
    }
    f[0][0]=1;
    fo(i,1,n*m)
        fo(I,0,er[m1+1]-1)
        {
            LL t=0;
            fo(j,1,m1)if(er[j]&I)t=(t+f[i-1][I-er[j]])%mo;
            f[i][I]=(f[i-1][I]*(R[I]-i+1)%mo+t)%mo;
        }
    return f[n*m][er[m1+1]-1];
}
void ss(int q,int w,int e)
{

    if(w>m)q++,w=1;
    if(q>n){ans=(ans+doit()*((e%2)?-1:1))%mo;return;}
    ss(q,w+1,e);
    if(!a[q][w]&&!z[q][w]&&z1[q][w])
    {
        a[q][w]=++m1;
        z1[q+1][w-1]=z1[q+1][w]=z1[q+1][w+1]=0;
        ss(q,w+2,e+1);
        a[q][w]=0;m1--;
        z1[q+1][w-1]=z1[q+1][w]=z1[q+1][w+1]=1;
    }
}
int main()
{
    int q,w,_;
    er[1]=1;fo(i,2,20)er[i]=er[i-1]<<1;
    scanf("%d",&_);
    while(_--)
    {
        scanf("%d%d",&n,&m);
        m1=0;
        fo(i,1,n)
            fo(j,1,m)
            {
                char ch=' ';a[i][j]=0;
                while(ch!='.'&&ch!='X')ch=getchar();
                if(ch=='X')a[i][j]=++m1;
            }
        fo(i,1,n)fo(j,1,m)
        {
            z1[i][j]=!(z[i][j]=OKX(i,j,7));
            if(a[i][j]&&z[i][j])m1=0;
        }
        if(!m1){printf("0\n");continue;}
        ans=0;
        ss(1,1,0);
        printf("%lld\n",(ans+mo)%mo);
    }
    return 0;
}
Ansys Lumerical 2023 R1.2新功能实战:薄膜铌酸锂调制器仿真全流程解析 本文详细解析了Ansys Lumerical 2023 R1.2在薄膜铌酸锂电光相位调制器仿真中的最新功能与应用。通过实战演示,展示了从电极配置、电场计算到模式分析的全流程,重点介绍了各向异性介电常数支持和多物理场耦合优化等关键技术,助力开发者高效设计高性能光通信器件。 阅读详情

相关推荐

若依框架-实现管理端与用户端的不同页面布局

我们现在要做的是:管理员登录时展示后台管理端,普通用户登录时展示我们自己写的页面。所以我们可以用v-if来判断登录用户的角色,如果用户角色包含admin,说明是管理员,渲染管理端相关组件,否则渲染用户端组件。不过若依作者的本意还是想退出系统后清空角色信息,所以为了保险期间,我们可以在退出系统后,延迟2秒,再单独清空角色信息。当我们登录管理端后,再退出登录,会有那么一瞬间渲染用户页面,然后才是回到登录界面。这个时候,前端检测到角色信息为空,不包含admin,于是就会渲染用户页面。用来延迟 2 秒执行。

m0_74462339的博客 1566

【CQOI 2012】【BZOJ 2669】【JZOJ 4700】 Garden

Description Analysis自此题本人在BZOJ上神一般的100%正确率没了!! 好吧,扯远了。 首先,请读者再读一遍题,尤其要注意加粗的字,我就被坑了。 N≤4,M≤7?!N\leq 4,M\leq 7?!,画一画,X的数量最多为8个。 那,我们从小到大填数,再状压一下X被填的状态。 那就有f[i][s]=(∑i∈sf[i−1][s−i])+f[i−1][s]∗当前状态可以

LYD729 567

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践

USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移

weixin_29178069的博客 334

【BZOJ2669】【JZOJ4700】Garden

【JZOJ4700】Garden题解

sadnohappy 645

Accelstepper 库中的参数计算公式

要完全调试电机的各个参数,例如最大速度,加速度等,就需要了解其计算公式和原理。 以下是代码注释: /// This code uses speed calculations as described in /// "Generate stepper-motor speed profiles in real time" by David Austin/// http://fab.cba.mi...

wenguitao的博客 4455

金蝶云星空初级实施认证考题

Q4.[单选题] (1.5分) 总账中的多账簿账表主要是基于什么进行查看的Q47.[多选题] (2.5分) 销售订单的收款计划页签勾选预收之后,预收控制环节可以控制哪些节点?

m0_51994557的博客 3121

BZOJ 2669 局部极小值&JZOJ.4700 Garden

状压DP+容斥原理

Luckfort 808

SpringBoot多线程查询实战-查询库中所有数据多线程实现

但是,在数据量较大且服务器资源足够的情况下,多线程方法通常能够显著提高查询效率。此外,由于它是同步执行的,没有利用并行处理的能力,所以在处理大量数据时可能会比较慢。这个方法采用了分页查询的方式,每次只获取一部分数据,从而避免了内存溢出的问题。然而,它也是同步执行的,没有利用多线程或并行处理的能力。如果每次分页查询的数据量仍然很大,或者需要查询的轮数很多,那么这种方法的效率可能仍然会受到限制。​ ​ ​在比较这三种方式的效率时,我们需要考虑几个关键因素:数据量的大小、查询操作的复杂性、以及并行处理的能力。

勇敢牛牛,不怕困难! 4809

JZOJ 4700 简单DP

题意: 看着好像挺简单,就是把限制换了个样子,事实上。。。 还是很简单。 我不会告诉你们我二十分钟就打完但是交的时候网络挂了导致我这题0分 题解: uses math; var i,j,k,p,n,m,ans:longint; v,w:array[0..100000]of longint; f:array[0..5000,0..5000]

老臣 364

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2313

Data+AI━━数仓建模的智能进化之路!

Data+AI━━数仓建模的智能进化之路!

ith321的博客 1744

BZOJ4700

4700: 适者 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 43  Solved: 21 [Submit][Status][Discuss] Description 【题目背景】 “虽然不知道那两台是谁干掉的,不过任务完成了。”一一次祖伽密. 【题意描述】 敌方有n台人形兵器,每台的攻击力为Ai,护甲值为Di。我方只有

CDQZOIERS的博客 802

【人工智能】拒绝焦虑,理性突围:AI 时代 Java 工程师的职业重构与进化指南

摘要:在AI技术快速发展的背景下,Java工程师面临职业转型挑战。本文通过MECE原则解构工作内容,划分高替代风险区(如CRUD开发)、高增效潜能区(如逻辑优化)和高核心壁垒区(如架构设计),指出AI对不同任务的影响程度。从劳动经济学视角分析行业将呈现K型分化,初级执行者被替代,而精通AI协作的全栈工程师需求增长。文章强调警惕过度依赖AI导致认知能力退化,并提出转型路径:掌握AI驱动开发(AIDD)、深耕领域驱动设计(DDD)、拓展全流程能力及AI原生应用开发。最终结论指出,未来的核心竞争力在于结合AI工具

奶爸的编程之路,也就一周冷个三天 135

【NOIP 2016 提高组】愤怒的小鸟

DescriptionSolution一题很显然的状压DP, 显然的转移是n3n^3的, 优化: 1. 很显然两个点决定一条抛物线后,可以预处理还能打到那些点。 2. 贪心的想,既然一个点迟早要打,为何不现在就打了它,复杂度:O(2n∗n)O(2^n*n)Code#include <iostream> #include <cstdio> #include <cstdlib> #include

1482

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【JZOJ 3853】帮助Bsny

DescriptionBsny的书架乱成一团了,帮他一下吧! 他的书架上一共有n本书,我们定义混乱值是连续相同高度书本的段数。例如,如果书的高度是30,30,31,31,32,那么混乱值为3;30,32,32,31的混乱值也为3。但是31,32,31,32,31的混乱值为5,这实在是太乱了。 Bsny想尽可能减少混乱值,但他有点累了,所以他决定最多取出k本书,再随意将它们放回到书架上。你能帮助

1335

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【JZOJ 4599】西行妖

Description 在幻想乡白玉楼有一棵终年不开花的樱树叫西行妖,西行寺幽幽子曾经为了让它开花而大量收集春度,然后被城管教训了一顿… 现在,幽幽子得到城管的允许,收集了S点春度,让西行妖重新开花。 西行妖可以被看成是一棵有n个节点的树,每个叶子节点被分配了1点春度就能开花(幽幽子不会无意义地使用她的春度,于是最多只会给同一个叶子节点分配1点春度),对于非叶子节点i,如果它有至少有1个儿子开花,

1140

【51NOD 1383】整数分解为2的幂

Description任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。 比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution显然,当n为奇数时(除了1),fn=fn−

1031

【JZOJ 3861】【JSOI2014】支线剧情2

DescriptionSolution显然的树形DP, 设gxg_x表示以点x根,一次存档也没有,跑完所有子树的时间, 设fxf_x表示以x的子树全部跑完所需的时间,可以有存档,也可以没有,(包含从根走下来的时间) 有三种情况, 1. 当前点存档,子树没有存档, 2. 当前点存档,子树只有一个存档, 3. 当前点存档,子树有一个存档,其他的点想存档要从根走下来,情况1,3比较好做,先考虑

985

【JZOJ 3052】剪草

Description 有N棵小草,编号0至N-1。奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H。在第0时刻,第i棵小草的高度是h[i],接下来的每个整数时刻,会依次发生如下三个步骤: 1. 每棵小草都长高了,第i棵小草长高的高度是grow[i]。 2. Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它

969

【51NOD 1048】【51NOD 1383】整数分解为2的幂 V2

Description任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法。7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution设gi,j,kg_{i,j,k}表示一个序列组成2i2^i这个数,这个序列中最大的数为2j2^j,最

912

【JZOJ 4685】礼物

Description 夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物。 商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得)。 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来。季堂每次都会将店员拿出来的礼物买下来。 众所周知,白毛切开都是黑的。所以季堂希望最后夏川的喜悦值尽可能地高。 求夏川最后最大的喜

908

【Codeforces 678E】Another Sith Tournament &【JZOJ 4648】锦标赛

Description Codeforces The rules of Sith Tournament are well known to everyone. JZOJ 403机房最近决定举行一场锦标赛。锦标赛共有N个人参加,共进行N-1轮。 抽象题意:有n个人要两两对决(n-1)场,已知每两个人对决的胜率,求一安排顺序,使1的最大胜率,输出最大的胜率。 Solution 拿到题就可以得出此题肯定是状态压缩DP,而D

891

【JZOJ 4937】与运算

DescriptionSolution肯定先把所有的数转成二进制, 设一个gig_i表示i这个二进制被多少个数包含,也就是这个数前面可以放多少个数(满足aia_i and i=i), 这样就可以状态压缩DP了, 当前做到了i,枚举在i的基础上减掉一位转移到j,那么转移式为:fj=fi+j∗(gj−gi)f_j=f_i+j*(g_j-g_i)复杂度:O(mlog(m))O(m\log(m))Co

884

【JZOJ 4630】计数

Description 给出n和k,求出n位的k进制数中不包含两个连续的0的数,且没有前导 0的数有几个。如要求7位的十进制数,如1010230算一个,1000198和0011234 不算, Solution 普通DP: fi,0=fi−1,1 fi,1=m∗(fi−1,0+fi−1,1) 转化一下: fi=m∗(fi−1+fi−2) 套上高精度即可。 Code

878

【JZOJ 4816】label

Solution 这道题O(nm)的暴力显然把,只要DP加一个前缀和即可, 打完以后发现,对于每个点,它的f数组开头和结尾是对称的,中间是一样的数。 现在我们来思考一下为什么: 把问题转换一下:如果问题是绝对值<=k,那么很显然,叶子节点全是1, 往上一层,开头的(k-1)个和结尾的(k-1)个有变化,并且对称(显然),中间的依旧相同, 再往上,就有2(k-1

867

【JZOJ 4345】【WC2016模拟】Fountain

DescriptionSolution考虑暴力n!n!枚举顺序,如何快速求答案, 设:sum=∑n−1i=1max(ai,ai+1)sum=\sum_{i=1}^{n-1}\max(a_i,a_{i+1}) 答案显然是Cnm−sum+nC^{n}_{m-sum+n}写出这个式子考虑转成DP: 设:f[i][j][k][l],表示从大到小做到第i个,当前有j个空隙必须放点,sum为k,l为0/1

827

【NOIP 2016 提高组】†换教室

DescriptionSolution先用弗洛伊德求出两两点的最短路, 设DP: fi,j,0f_{i,j,0}表示当前走到了i这个点,申请了j次,在原点的期望距离, fi,j,1f_{i,j,1}表示当前走到了i这个点,申请了j次,在申请点的期望距离(当然要加上没有申请成功走到原点的期望距离), 转移: 设DS(0/1,0/1)表示从上一轮的原点/申请点到当前的原点/申请点距离, bi

801
上一篇: 【JZOJ 4693】疯狂的火神
下一篇: 【Codeforces 583C】【JZOJ 4699】Password
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值