[FJWC2020 Day1T1] 人生

Postman调试海康ISAPI接口全记录:从鉴权失败到成功修改设备名的踩坑指南 本文详细记录了使用Postman调试海康ISAPI接口的全过程,从鉴权失败到成功修改设备名的实战经验。涵盖Digest认证机制、XML请求体构造、常见错误排查及代码实现过渡,帮助开发者高效解决海康设备集成中的各种问题。 阅读详情

题目描述
现在你有nnn个点,每个点有黑色(000)或者白色(111)或者没有颜色(−1-1−1),现在你需要把所有没有颜色的点染成黑色或者白色
你还需要添加一些不重复的有向边(i,j)(i,j)(i,j),要求1≤i<j≤n1\leq i<j\leq n1≤i<j≤n,也就是说这些边需要从编号小的走到编号大的
一般的,一条合法的路径是指他经过的任意两个点的颜色不同。特别的,一个点也算作一条路径
问最后有多少种符合条件的图,使得这个图上有奇数条合法路径,答案对998244353998244353998244353取模

对于10%10\%10%的数据,n≤5n\leq 5n≤5
对于40%40\%40%的数据,n≤50n\leq 50n≤50
对于50%50\%50%的数据,n≤150n\leq 150n≤150
对于65%65\%65%的数据,n≤500n\leq 500n≤500
对于80%80\%80%的数据,n≤5000n\leq 5000n≤5000
对于全部的数据 ,n≤2×105n\leq2\times 10^5n≤2×105


solution
首先考虑对于确定的图,我们怎么计算可不可行
我们用cnticnt_icnti​表示以第iii个点为结尾的路径个数,那么我们应该有这样的转移
cnti=∑j=1i−1 cntj(colori≠colorj,∃(j,i))+1cnt_i=\begin{matrix}\sum_{j=1}^{i-1}\end{matrix}\ cnt_j(color_i\neq color_j,\exist(j,i))+1cnti​=∑j=1i−1​​ cntj​(colori​​=colorj​,∃(j,i))+1
然后我们只需要判断∑cnti\sum cnt_i∑cnti​的奇偶性即可
那么我们发现我们记录出这个东西有点冗余,我们让cnticnt_icnti​表示以iii点为结尾的路径个数的奇偶性,那么我们之前的转移方程可以写成
cnti=(xorsum⁡j=1i−1 cntj)xor⁡1(colori≠colorj,∃(j,i))cnt_i=\begin{matrix}(\operatorname{xorsum}_{j=1}^{i-1}\end{matrix}\ cnt_j) \operatorname{xor} 1(color_i\neq color_j,\exist(j,i))cnti​=(xorsumj=1i−1​​ cntj​)xor1(colori​​=colorj​,∃(j,i))
其中xorsum⁡\operatorname{xorsum}xorsum表示异或和

然后我们考虑进行dpdpdp,因为题目中说所有边都是从编号小的连向大的,所以我们用fi,j,x,yf_{i,j,x,y}fi,j,x,y​表示前iii个点,cntcntcnt的xorsum⁡\operatorname{xorsum}xorsum为jjj,有xxx个cnt=1cnt=1cnt=1的白色点,有yyy个cnt=1cnt=1cnt=1的黑色点,的方案数,转移以将这个点染成白色为例,分两类进行讨论,一个是这个点的cnt=1cnt=1cnt=1,转移为

f[i][j][x+1][y]+=f[i−1][jxor⁡1][x][y]×calc⁡(y,0)×2xf[i][j][x+1][y]+=f[i-1][j\operatorname{xor} 1][x][y]\times \operatorname{calc}(y,0)\times 2^xf[i][j][x+1][y]+=f[i−1][jxor1][x][y]×calc(y,0)×2x

当cnti=0cnt_i=0cnti​=0时,

f[i][j][x][y]+=f[i−1][j][x][y]×calc⁡(y,1)×2xf[i][j][x][y]+=f[i-1][j][x][y]\times\operatorname{calc}(y,1)\times 2^xf[i][j][x][y]+=f[i−1][j][x][y]×calc(y,1)×2x

其中calc⁡(y,opt)\operatorname{calc}(y,opt)calc(y,opt)表示在一个大小为yyy的集合中,奇偶性为optoptopt的子集的方案数(包括∅)

暴力枚举选了几个,这个转移就是O(n4)O(n^4)O(n4)的,可以拿到404040分

我们考虑calc⁡(y,opt)\operatorname{calc}(y,opt)calc(y,opt)等于多少,我们发现在y≥1y\geq1y≥1他一定是2y−12^{y-1}2y−1,为什么呢?
当yyy为奇数的时候,我们把它看成二进制,那么任意一个奇数个数的集合一定对应一个大小为偶数的集合即他的补集,所以奇数偶数各占一半
当yyy为偶数的时候,我们考虑分成1,n−11,n-11,n−1两部分,已知n−1n-1n−1中选出奇数和偶数的方案数是相同的,那么如果选剩下的一个那么就是n−1n-1n−1中选奇数的方案,不选就是n−1n-1n−1中选偶数的方案,所以奇数偶数数量还是相同的

考虑边界条件,当y=0y=0y=0时,000个数中选偶数的方案数为111,000个数中选奇数的方案为000,注意特判就可以

那么现在转移就变成了O(n3)O(n^3)O(n3)的,可以拿到505050分

我们发现iii这一维可以滚动数组滚掉,空间变成平方,在开O2的情况下应该可以拿到656565分

考虑进一步优化,我们把calc⁡\operatorname{calc}calc的值带进之前的转移方程,变成

f[i][j][x+1][y]+=f[i−1][jxor⁡1][x][y]×2i−1(2x=2i−y)f[i][j][x+1][y]+=f[i-1][j\operatorname{xor} 1][x][y]\times 2^{i-1}(2^x=2^{i-y})f[i][j][x+1][y]+=f[i−1][jxor1][x][y]×2i−1(2x=2i−y)
f[i][j][x][y]+=f[i−1][j][x][y]×2i−1f[i][j][x][y]+=f[i-1][j][x][y]\times 2^{i-1}f[i][j][x][y]+=f[i−1][j][x][y]×2i−1

当然y=0y=0y=0的时候需要特判

观察这个转移,我们发现x,yx,yx,y已经基本无关了,唯一有影响的就是是否是000,所以我们可以变成f[i][j][0/1][0/1]f[i][j][0/1][0/1]f[i][j][0/1][0/1],分别表示目前是否有白点和黑点,那么这样复杂度就变成了O(n)O(n)O(n),可以通过

#include <bits/stdc++.h>
using namespace std;

# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)

typedef long long ll;

const int N=2e5+5;
const int mod=998244353;

template<typename T> void read(T &x){
   x=0;int f=1;
   char c=getchar();
   for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
   for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
    x*=f;
}

int n;
int a[N];
int f[N][2][2][2];
int fac[N];
int ans;

int main()
{
	freopen("life.in","r",stdin);
	freopen("life.out","w",stdout);
	read(n);
	Rep(i,1,n)read(a[i]);
	fac[0]=1;
	Rep(i,1,n)fac[i]=fac[i-1]*2%mod;
	f[0][0][0][0]=1;
	Rep(i,1,n)
		Rep(j,0,1)
			Rep(x,0,1)
				Rep(y,0,1){
					if(a[i]!=1){
						f[i][j^1][x|1][y]+=1ll*f[i-1][j][x][y]*(y?fac[i-2]:fac[i-1])%mod;
						f[i][j^1][x|1][y]%=mod;
						f[i][j][x][y]+=1ll*f[i-1][j][x][y]*(y?fac[i-2]:0)%mod;
						f[i][j][x][y]%=mod;
					}
					if(a[i]){
						f[i][j^1][x][y|1]+=1ll*f[i-1][j][x][y]*(x?fac[i-2]:fac[i-1])%mod;
						f[i][j^1][x][y|1]%=mod;
						f[i][j][x][y]+=1ll*f[i-1][j][x][y]*(x?fac[i-2]:0)%mod;
						f[i][j][x][y]%=mod;	
					}
				}
	Rep(i,0,1)
		Rep(j,0,1)
			ans+=f[n][1][i][j],ans%=mod;
	printf("%d\n",ans);
	return 0;
}
人工智能面试总结-分类与聚类 目录说说常用的分类算法,以及各自的优缺点?说说为什么正确率有时不能有效评估分类算法?说说什么样的分类器最好?说说聚类算法有哪些衡量标准?(选看)各聚类算法性能比较汇总说说什么是聚类,你知道哪些聚类算法?具体展开介绍你知道的聚类算法?说说K-Means聚类算法流程?说说K-Means聚类算法如何调优?说说K-Means聚类算法如何选择初始点?说说K-Means聚类聚的是特征还是样本?说说K-Means聚类的特征距离是如何计算的?说说聚类与分类的区别?手撕K-Means聚类 说说常用的分类算法,以及各自的优缺点 阅读详情

相关推荐

0基础手把手搭建 Trae\+Seedance2\.0 真人短剧生成智能体(可直接运行)

前言:本文专为0基础新手编写,全程无复杂代码、无专业术语,一步一截图提示(操作路径清晰),只需跟着点鼠标、复制粘贴,就能搭建出可自动生成真人短剧的智能体,生成的短剧可直接导出发布。核心工具:Trae(字节跳动AI IDE,免费)+ Seedance2.0(真人视频生成API,公测免费),无需提前学习编程、设计,全程10-15分钟搞定。 适用人群:0基础小白、想快速生成真人短剧(自媒体、短视频创作者)、无需懂技术即可实现自动化短剧生成的人群。

skygulangfendouz的专栏 1058

[FJWC2020D1T1]人生

Tiw-Air-OAO 究竟是何方神圣?!?!

七代目鸽影 319

一文说清STM32CubeMX中文汉化全流程(图解说明)

详细讲解STM32CubeMX中文汉化的完整流程,通过图文并茂的方式手把手教学,解决界面英文带来的使用障碍,让开发更高效。掌握stm32cubemx中文汉化技巧,提升嵌入式开发体验。

weixin_42499004的博客 6264

【游记】FJWC2020赛后猪一样

我好弱啊……

七代目鸽影 355

AFSim 2.9实战指南:从入门到精通的中文教程

本文是AFSim 2.9的实战指南,提供从零开始的中文教程。内容涵盖仿真环境搭建、实体行为控制、脚本编写,到传感器、武器系统集成与复杂想定构建,最后讲解数据记录与结果分析方法,帮助用户快速掌握这一强大的军事仿真框架。

weixin_29281941的博客 942

使用VScode编译AMI代码

我现在了解到的和拿到的code,都是基于AMI的code,一般的编译AMI都需要搭配使用AMI的编译环境Veb,而Veb用到现在,一直都觉得有点卡顿,浏览代码的体验也比VScode差很多。在这之前还要,考虑设置TOOLS_DIR和EWKE_DIR的环境变量,因为在Veb中是可以通过设置自动设置的,但是VScode里面没用设置环境变量的选项。这里可以看出,Veb工具栏中的Build和Rebuild All的命令对应这里的make和make rebuild,也就是说Veb是调用此命令进行编译的。

Dodijd的博客 1879

(FJWC2020)DTOJ 4679. 赢家

题意 给定一个n个点m条边的无向图,

sz_165394732的博客 475

如何用libwebsocket库在stm32F407上实现websocket客户端?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1132

(FJWC2020) DTOJ 4690. 亚特兰大

题意 司令部截获了深海的电报,你的镇守府即将被深海轰炸。 虽然你作为历战提督,已经有了很多局地战、火箭机,但是刚刚击破 E6 甲,拥有亚特兰大以及最高倍率对空 ci 的你,决定只用亚特兰大抵挡对面的炸家。 你的镇守府可以看成一棵树,深海的轰炸是在某两个点之间进行的(起点终点交换视为一种),轰炸路径是树上的简单路径。也就是说,深海一共有 Cn2C_n^2Cn2​ 种可能的轰炸方案。 你的亚特兰大在不...

sz_165394732的博客 581

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5650

流体动力学仿真软件:XFlow_(16).案例研究:热传输与相变

包括密度、比热容、热传导系数等。

kkchenjj的博客 722

(FJWC2020day3) DP课件题解

没有一题是在讲评之前想出来的(没救了)。 后来看了下其实并不难,当时可能太困了没认真想。 总之还是菜吧。 T1 AGC033D Complexity 如果直接DP设f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]记录矩形,瓶颈在于状态数上。 考虑减少状态数,其实也是一个比较套路的方法,发现答是logloglog级别的,于是把其中一维状态改为答案,DP值改为那维状态,转...

sz_165394732的博客 650

AXI总线详解完结篇

经过几个月的整理和发文,AXI总线详解系列正式迎来最终篇,内容基本涵盖了上一篇文章的全部内容。 所有文章的链接如下: 1、 AXI总线详解 2、AXI总线详解-总线和接口以及协议 3、AXI协议中的通道结构 4、AXI总线详解-AXI4读写操作时序及AXI4猝发地址及选择 5、AXI4交换机制 6、ZYNQ中DMA与AXI4总线-DMA简介 7、AXI总线详解-不同类型的DMA 8、AXI总线详解-DMA内部寄存器的读写方式 9、AXI总线详解-几种应用DMA的场合 10、Altera Scatter-G.

OpenFPGA的博客 5484

FJOI2017 滚蛋记

在FJOI前面参加了几天的FJWC,下午打了一些模拟赛,大概的情况是:第一天犯傻爆零,有一天是第二名(这真是人生巅峰),还有两天十几名二十几名这样子。总的来说比较惨,毕竟我弱。主要说一下FJOI吧,共三题。先通读一遍题目,花一个小时干掉第三题FJWCD1T1原题,回头搞第二题。第二题,一看题目觉得和最大点独立集有关?可是独立集的那套理论我已经记不太清楚了啊。。。(我以前还专门整理过这些,这样忘掉了是

无尽 2241

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[FJWC2020]黑红兔

黑红兔 题意 题解 这暴力比正解还快3倍。 看到这道题,应该是很容易想到dp的。 令dpi,jdp_{i,j}dpi,j​表示选取区间i,ji,ji,j时的最大段数,这样dp,明显是O(n4)O\left(n^4\right)O(n4),只有10pts10pts10pts。 我们明显是可以对上面的dp进行优化的。 很明显,一定存在一种选法只比上面一段多111,所以总的段数长度一定不会超过2n\sqrt{2n}2n​,可以将dpdpdp的第二维换成该段长度,也就被压缩到了O(n3)O\left(n^3\ri

StaroForgin的博客 281

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【JZOJ 省选模拟】字符串

题目 Description 你喜欢字符串。有人送了你一个仅含小写字母的字符串。 由于你是一名优秀的 ????????er,所以你决定对这个字符串展开研究。 定义两个字符串是相似的,当且仅当存在至多一个 ???? ,使得这两个字符串中只有第 ???? 个字母不同。 你取出了这个字符串中所有长度为m 的子串。你想知道,对于每个长度为 m 的子串,有多少个其它长度为 m 的子串与它相似。 Input 第一行两个正整数 n,m...

Brute♂force 778

(FJWC2020)DTOJ 4695. lg

题意 有两个正整数 nnn 和 mmm。 我们考虑所有长度为 nnn,每个元素在 [1,m][1, m][1,m] 的整数序列。对于所有整数序列,设 lcmlcmlcm 为这个序列中元素的最小公倍数,gcdgcdgcd 为这个序列中元素的最大公约数,我们希望求出 lcmgcdlcm^{gcd}lcmgcd。你需要对于所有这些整数序列,计算 lcmgcdlcm^{gcd}lcmgcd 之积 mod&...

sz_165394732的博客 778

(FJWC2020)DTOJ 4680. 红黑兔

题意 上个月,PinkRabbit 在算法竞赛网站 Codeforces 一把打上了 ILGM。 PinkRabbit 现在看到了一道简单题,但他忙于水知乎夺取 Codeforces 世界榜首,于是把问题交 给了你: 给定一个长度为 nnn 的只包含小写英文字母的字符串 sss,你需要找到一个最大的 kkk ,使得存在: 1≤l1≤r1<l2≤r2<l3≤r3<⋯<lk≤r...

sz_165394732的博客 619

(FJWC2020) DTOJ 4689 图(graph)

题意 有一张 nnn 个点,mmm 条边的无向图,你想选出一个非空点集,使得仅保留这个点集中的点和两个端点都在这个点集里的边后得到的图是连通的。你想知道有多少种可能的选点集的方案。 由于出题人不是毒瘤,所以本题不对 998244353998244353998244353 取模,改为对 222 取模。 对于 100%100\%100% 的数据,1≤n≤50,0≤m≤n(n−1)/2,1≤∣ai−bi...

sz_165394732的博客 738

(FJWC2020)DTOJ 4696. pm

题意 有一个长度为nnn的排列ppp,你可以对它进行若干次把相邻两个数交换的操作,使得操作数+(i!=p[i])+(i!=p[i])+(i!=p[i])的iii的个数之和最小。 题解 考场思路: 剩下不到一小时开始想,注意到相同的操作不会重复进行,(容易证明)。于是交换操作是有用的,当且仅当能把完全乱序的包含l,...,rl,...,rl,...,r区间[l,r]通过r-l次操作变为l,...,r...

sz_165394732的博客 510

(FJWC2020)DTOJ 4688. 迫害 DJ

题意 舰队 collection 2019 年秋季活动 E1,第八驱逐队正在讨论要怎么迫害 DJ。 大潮表示,她左手的内火艇能对 DJ 造成 g0=ag_0 = ag0​=a 点伤害,右手的战车能对 DJ 造成 g1=bg_1 = bg1​=b 点伤害。 满潮表示,司令部研发的若干新式对陆武器,第 iii 件可以对 DJ 造成 gi=3×gi−1−gi−2g_i = 3 \times g_{i−1...

sz_165394732的博客 762

【FJWC】day1简要题解

FJWCday1

远行客 517

(FJWC2020) DTOJ 4686. 字符串

题意 你喜欢字符串。有人送了你一个仅含小写字母的字符串。 由于你是一名优秀的 OIer,所以你决定对这个字符串展开研究。 定义两个字符串是相似的,当且仅当存在至多一个 iii,使得这两个字符串中只有第 iii 个字母不同。 你取出了这个字符串中所有长度为 mmm 的子串。你想知道,对于每个长度为 mmm 的子串,有多少个其它长度为 mmm 的子串与它相似。 子任务 1(10%)1(10\%)1(1...

sz_165394732的博客 415

DTOJ3085 树tree

DTOJ3085 树tree题解 题解 要完成这一题,需要知道一个神奇的数列——prufer数列! 每一棵不同的无根树,都对应这不同的prufer数列 也就是说,prufer数列和无根树是一一对应的 所以我们只需要计算可以组成多少种prufer数列 prufer数列有一个神奇的性质——每一个节点出现的次数是它的度数减一 这就是我们为什么要使用prufer数列了 我们假设计算前iii个点并且每个点的...

菜鸡Jacky0705的优快云博客 338

【FJWC】day2简要题解

FJWCday2

远行客 436

UPC 2020年春混合个人训练第三十四场(省选模拟)【A&B&C&E&G】

【省选模拟】 图+状压DP、字符串的前/后缀树+树状数组+DFS、模拟+贪心、BFS+最短路(floyed)、图论+最大生成树 问题 A: 图 (graph) 问题 B: 字符串 (string) O(nlog2n) 问题 C: 楼房搭建 (building) 问题 E: 小 Biu 的旅行 (travel) 问题 G: sunflower

米莱虾 1902

【JZOJ 省选模拟】楼房搭建(building)

题目 Description 小 H 是一个建筑师,他接到了一个任务——按照计划图搭建一排楼房。计划图上从左到右 给出了 n 个非负整数,对于第 i 个数 h i ,它表示在 i 这个位置搭建出来的楼房的高度不能小于h i 。 小 H 搭建楼房的方式也很特别。在每一时刻,它总可以让相邻的两个楼房分别增高 1 个单 位和增高 2 个单位。具体地,对于任意的 i(1 ≤ i < n),每一时刻他...

Brute♂force 1033
上一篇: [NOI2011]阿狸的打字机
下一篇: [THUPC2019] 不等式
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值