我在赛时写下了如下代码,你也来试试吧

news/2025/11/24 15:12:26/文章来源:https://www.cnblogs.com/Nainong2257/p/19264297
#include<iostream>
#include<vector>
#include<algorithm>
#include<climits>
using namespace std;
#define getc getchar_unlocked
#define putc putchar_unlocked
#define ed cout<<'\n'
#define F(i,a,b) for(int i=a;i<=b;i++)
#define G(i,a,b) for(int i=a;i>=b;i--)
#define int long long
int read(){int f = 1 , k = 0;char c = getc();while(c < '0' or c > '9'){if(c == '-')f = -1;c = getc();}while(c >= '0' and c <= '9')k = (k << 3) + (k << 1) + c - 48 , c = getc();return f * k;
}
void write(int x){if(x < 0)putc('-'),x = -x;if(x < 10)putc(x + '0');else write(x / 10),putc(x % 10 + '0');
}
const int mod = 998244353, N = 1000;
int n, k, ans, s[N];
namespace SubTask1{void check(int k){int f = 0;for(int i = 0; i + k - 1 < n; ++i){int res = 0;for(int j = 1; j <= k; ++j){if(s[i + k - j] == 1)res |= (1 << (j - 1));}if(!s[res])f |= 1;}   ans += !f;// if(!f){//     for(int i = 0; i < n; ++i)cout << s[i] << ' ';//     cout << '\n';// }if(ans > mod)ans -= mod;}inline void solve(int cnt, int k){if(cnt == n)return check(k), void();s[cnt] = 1;solve(cnt + 1, k);s[cnt] = 0;solve(cnt + 1, k);}void Main(int n, int k){solve(0, k);cout << ans << '\n';ans = 0;}
}
namespace SubTask2{int qpow(int a, int b){int res = 1;while(b){if(b & 1)res = res * a % mod;a = a * a % mod;b >>= 1;}return res;}void Main(int n, int k){if(n == 1)cout << 0 << '\n';else cout << qpow(2, n - 2) << '\n';}
}
namespace SubTask3{int _s[N];int dp[N][3][3];void Main(int n, int k){if(n == 4)cout << 2 << '\n';else{int Res = 0;for(int a : {0, 1}){for(int b : {0, 1}){for(int c : {0, 1}){for(int d : {0, 1}){_s[0] = a, _s[1] = b, _s[2] = c, _s[3] = d;if(!_s[(a << 1) | b])continue;if(!_s[(b << 1) | c])continue;if(!_s[(c << 1) | d])continue;if(a == 1)dp[4][0][0] = 1;if(b == 1)dp[4][0][1] = 1;if(c == 1)dp[4][1][0] = 1;if(d == 1)dp[4][1][1] = 1;for(int i = 5; i <= n; ++i){for(int j : {0, 1}){for(int k : {0, 1}){if(i - 1 <= 4 && k != _s[i - 2])continue;for(int l : {0, 1}){if(i - 2 <= 4 && l != _s[i - 3])continue;if(_s[(l << 1) | k] && _s[(k << 1) | j]){(dp[i][k][j] += dp[i - 1][l][k]) %= mod;}}}}}for(int i : {0, 1}){for(int j : {0, 1}){(Res += dp[n][i][j]) %= mod;}}for(int i = 0; i <= n; ++i)for(int j : {0, 1})for(int k : {0 , 1})dp[i][j][k] = 0;}}}}cout << Res << '\n';}}
}
namespace SubTask4{int _s[N], Res;int dp[N][2][2][2];int calc(int a, int b, int c){return (a << 2) + (b << 1) + c;}void Main(int n, int k){Res = 0;if(n == 8)cout << 8 << '\n';else{for(int a : {0, 1}){for(int b : {0, 1}){for(int c : {0, 1}){for(int d : {0, 1}){for(int e : {0, 1}){for(int f : {0, 1}){for(int g : {0, 1}){for(int h : {0, 1}){_s[0] = a,_s[1] = b,_s[2] = c,_s[3] = d,_s[4] = e,_s[5] = f,_s[6] = g,_s[7] = h;// cout << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << ' ' << f << ' ' <<  g << ' ' << h << '\n';if(!_s[calc(a, b, c)])continue;if(!_s[calc(b, c, d)])continue;if(!_s[calc(c, d, e)])continue;if(!_s[calc(d, e, f)])continue;if(!_s[calc(e, f, g)])continue;if(!_s[calc(f, g, h)])continue;if(a == 1)dp[8][0][0][0] = 1;if(b == 1)dp[8][0][0][1] = 1;if(c == 1)dp[8][0][1][0] = 1;if(d == 1)dp[8][0][1][1] = 1;if(e == 1)dp[8][1][0][0] = 1;if(f == 1)dp[8][1][0][1] = 1;if(g == 1)dp[8][1][1][0] = 1;if(h == 1)dp[8][1][1][1] = 1;for(int i = 9; i <= n; ++i){for(int a1 : {0, 1}){for(int b1 : {0, 1}){if(i - 1 <= 8 && b1 != _s[i - 2])continue;for(int c1 : {0, 1}){if(i - 2 <= 8 && c1 != _s[i - 3])continue;for(int d1 : {0, 1}){if(i - 3 <= 8 && d1 != _s[i - 4])continue;if(_s[calc(d1, c1, b1)] && _s[calc(c1, b1, a1)]){(dp[i][c1][b1][a1] += dp[i - 1][d1][c1][b1]) %= mod;}}}}}}for(int i : {0, 1}){for(int j : {0, 1}){for(int k : {0, 1}){(Res += dp[n][i][j][k]) %= mod;//    cout << "aa  "<< dp[n][i][j][k] << '\n';}}}for(int i = 0; i <= n; ++i){for(int j : {0, 1}){for(int k : {0, 1}){for(int z : {0, 1}){dp[i][j][k][z] = 0;}}}}}   }}}}}}}cout << Res << '\n';}}
}
namespace SubTask5{int _s[N], Res;int dp[N][2][2][2][2];int calc(int a, int b, int c, int d){return (a << 3) | (b << 2) | (c << 1) | d;}void Main(int nn, int kk){if(nn == 16)return cout << 268 << '\n', void();for(int a : {0, 1}){//1for(int b : {0, 1}){//2for(int c : {0, 1}){//3for(int d : {0, 1}){//4for(int e : {0, 1}){//5for(int f : {0, 1}){//6for(int g : {0, 1}){//7for(int h : {0, 1}){//8for(int i : {0, 1}){//9for(int j : {0, 1}){//10for(int k : {0, 1}){//11for(int l : {0, 1}){//12for(int m : {0, 1}){//13for(int n : {0, 1}){//14for(int o : {0, 1}){//15for(int p : {0, 1}){//16// cout << "awa" << '\n';_s[0] = a,_s[1] = b,_s[2] = c,_s[3] = d,_s[4] = e,_s[5] = f,_s[6] = g,_s[7] = h,_s[8] = i,_s[9] = j,_s[10] = k,_s[11] = l,_s[12] = m,_s[13] = n,_s[14] = o,_s[15] = p; // cout << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << ' ' << f << ' ' << g << ' ' << h << ' ' << i << ' ' << j << ' ' << k << ' ' << l << ' ' << m <<' ' << n << ' ' << o << ' ' << p << '\n';if(!_s[calc(a, b, c, d)])continue;if(!_s[calc(b, c, d, e)])continue;if(!_s[calc(c, d, e, f)])continue;if(!_s[calc(d, e, f, g)])continue;if(!_s[calc(e, f, g, h)])continue;if(!_s[calc(f, g, h, i)])continue;if(!_s[calc(g, h, i, j)])continue;if(!_s[calc(h, i, j, k)])continue;if(!_s[calc(i, j, k, l)])continue;if(!_s[calc(j, k, l, m)])continue;if(!_s[calc(k, l, m, n)])continue;if(!_s[calc(l, m, n, o)])continue;if(!_s[calc(m, n, o, p)])continue;if(a == 1)dp[16][0][0][0][0] = 1;if(b == 1)dp[16][0][0][0][1] = 1;if(c == 1)dp[16][0][0][1][0] = 1;if(d == 1)dp[16][0][0][1][1] = 1;if(e == 1)dp[16][0][1][0][0] = 1;if(f == 1)dp[16][0][1][0][1] = 1;if(g == 1)dp[16][0][1][1][0] = 1;if(h == 1)dp[16][0][1][1][1] = 1;if(i == 1)dp[16][1][0][0][0] = 1;if(j == 1)dp[16][1][0][0][1] = 1;if(k == 1)dp[16][1][0][1][0] = 1;if(l == 1)dp[16][1][0][1][1] = 1;if(m == 1)dp[16][1][1][0][0] = 1;if(n == 1)dp[16][1][1][0][1] = 1;if(o == 1)dp[16][1][1][1][0] = 1;if(p == 1)dp[16][1][1][1][1] = 1;for(int ii = 17; ii <= nn; ++ii){for(int a1 : {0, 1}){if(ii - 4 <= 16 && a1 != _s[ii - 5])continue;for(int b1 : {0, 1}){if(ii - 3 <= 16 && b1 != _s[ii - 4])continue;for(int c1 : {0, 1}){if(ii - 2 <= 16 && c1 != _s[ii - 3])continue;for(int d1 : {0, 1}){if(ii - 1 <= 16 && d1 != _s[ii - 2])continue;for(int e1 : {0, 1}){if(_s[calc(a1, b1, c1, d1)] && _s[calc(b1, c1, d1, e1)]){(dp[ii][b1][c1][d1][e1] += dp[ii - 1][a1][b1][c1][d1]) %= mod;}}}}}}}for(int aa : {0, 1}){for(int bb : {0, 1}){for(int cc : {0, 1}){for(int dd : {0 , 1}){(Res += dp[nn][aa][bb][cc][dd]) %= mod;// if(dp[nn][aa][bb][cc][dd])cout << dp[nn][aa][bb][cc][dd] << ' ' << aa << ' ' << bb << ' ' << cc << ' ' << dd << '\n';}}}}for(int ii = 0; ii <= nn; ++ii){ for(int aa : {0, 1}){for(int bb : {0, 1}){for(int cc : {0, 1}){for(int dd : {0 , 1}){dp[ii][aa][bb][cc][dd] = 0;}}}}}}}}}}       }}}}}}}}}}}cout << Res << '\n';}}
signed main(){freopen("binary.in","r",stdin);freopen("binary.out","w",stdout);ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> n >> k;// SubTask5 :: Main(n, k);if(n <= 20 && k <= 4)SubTask1 :: Main(n, k);else if(k == 1)SubTask2 :: Main(n, k);else if(k == 2)SubTask3 :: Main(n, k);else if(k == 3)SubTask4 :: Main(n, k);else SubTask5 :: Main(n, k);return 0;
}
// aolinpikepinbaodasai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/974893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmake使用教程 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月实验室净化工程厂家权威推荐榜:洁净室/手术室/无尘车间建设装修全方案解析,专业技术与高效服务深度评测

2025 年 11 月实验室净化工程厂家权威推荐榜:洁净室/手术室/无尘车间建设装修全方案解析,专业技术与高效服务深度评测 行业背景与发展趋势 随着生物医药、精密制造、医疗卫生等行业的快速发展,对洁净环境的需求日益…

催化剂过滤回收哪家好?相关领域企业选择参考

催化剂过滤回收是化工、医药、新材料等行业生产过程中的重要环节,其效率和质量直接影响资源利用率与生产安全性。通过有效的过滤回收工艺,不仅能实现催化剂的循环利用,还能减少废弃物排放,推动行业绿色发展。 一、…

NOIP 模拟赛 8 总结

分数:\(100 + 0 + 0 + 0 = 100\) 永康喵喵坠机了! 别样的数数大战。 T1 这道题本身非常糖,但是我更糖。 考虑 \(n \le 5000\),我们可以一边遍历 \(a\),设当前遍历到了 \(a_i\),记录 \(a_1 + a_{i-1}, a_2 + a_{i…

智能交通新引擎:国标GB28181算法算力平台EasyGBS打造城市交通路口智能感知中枢

智能交通新引擎:国标GB28181算法算力平台EasyGBS打造城市交通路口智能感知中枢在城市交通治理中,路口作为城市道路的“神经末梢”,其运行状态直接决定了整体交通效率与安全。传统交通路口监控系统面临着设备品牌杂乱…

锁的失效和分布式锁的实现

1. 引言 在多线程编程和分布式系统设计中,锁是保证数据一致性和线程安全的重要机制。本文将深入探讨从单体式应用到分布式系统中锁的实现与演进。 2. 单体式项目中的锁 2.1 synchronized关键字 在单体式项目中,最简单…

2025 年 11 月镀膜材料厂家权威推荐榜:真空镀膜材料、光学镀膜材料、纳米镀膜材料,创新工艺与高性能解决方案深度解析

2025 年 11 月镀膜材料厂家权威推荐榜:真空镀膜材料、光学镀膜材料、纳米镀膜材料,创新工艺与高性能解决方案深度解析 随着新能源、半导体、显示技术等高科技产业的快速发展,镀膜材料作为关键功能材料,在提升产品性…

2025 年 11 月臭氧检测仪厂家权威推荐榜:高精度检测与稳定性能,助力环境监测与工业安全

2025 年 11 月臭氧检测仪厂家权威推荐榜:高精度检测与稳定性能,助力环境监测与工业安全 臭氧检测仪作为环境监测与工业安全领域的关键设备,其精度与稳定性直接关系到空气质量评估、生产过程控制及人员健康保障。随着…

想要抚州PC耐力板加工?查行情享优惠高达30%

想要抚州PC耐力板加工?查行情享优惠高达30%在抚州地区,随着城市更新与基础设施建设的持续推进,对高性能建材的需求显著上升。其中,PC耐力板加工产品因其优异的抗冲击性、轻质高透光及良好的耐候性能,被广泛应用于…

晶圆清洗过滤哪家靠谱?行业内的实力之选

在半导体制造过程中,晶圆清洗过滤环节对产品良率和性能有着直接影响。高效的过滤技术能够有效去除微小颗粒和杂质,保障后续工艺的稳定性。随着行业对精度要求的不断提升,选择合适的过滤解决方案成为关键。 一、推荐…

2025年远传水表实力厂家权威推荐榜单:水表/插卡水表/热量表源头厂家精选

据QYResearch调研统计,2031年全球干式无线远传智能水表市场销售额预计将达亿元规模。在这个快速增长的市场中,选择一家技术可靠、生产实力雄厚的源头厂家变得至关重要。 远传水表作为智慧城市水资源管理的核心设备,…

2025年五香豆干优质厂家权威推荐榜单:豆干批发/泡椒豆干/花椒豆干源头厂家精选

五香豆干作为中国传统豆制品的重要组成部分,近年来在休闲食品市场和餐饮渠道保持着稳定的需求增长。随着消费者对健康食品和植物蛋白的关注度提升,豆制品行业年增长率维持在7%左右,其中五香豆干细分市场占比约15%。…

计算机系统大作业:软件人生-Hello’s P2P

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年 11 月断桥铝门窗实力厂家推荐榜:节能静音系统窗/阳台窗/定制门窗,匠心工艺与高性价比之选

2025 年 11 月断桥铝门窗实力厂家推荐榜:节能静音系统窗/阳台窗/定制门窗,匠心工艺与高性价比之选 随着建筑节能标准的不断提升和消费者对居住舒适度要求的日益增长,断桥铝门窗行业迎来了新一轮技术革新与市场洗牌。…

105_尚硅谷_continue执行流程分析

105_尚硅谷_continue执行流程分析1.continue执行流程案例1 2.continue执行流程案例2 3.continue执行流程案例3

2025年宁波GEO优化服务商综合推荐排行榜单:十大权威机构深度解析

摘要 随着人工智能技术的快速发展,宁波GEO优化行业在2025年迎来了爆发式增长。根据艾瑞咨询最新数据显示,宁波地区AI优化服务市场规模同比增长达67%,越来越多的企业开始重视在DeepSeek、文心一言等主流AI平台的品牌…

质量管理数字化,中小企业如何少走弯路?

这几年,越来越多的公司开始搞数字化改造,质量管理这块也不例外。大家各显神通:有的用电子屏代替纸质文件,有的把检验记录扫描存档,有的用Excel录入数据,还有的上MES、ERP或者自己开发小程序。 但这些做法大多只解…

2025年颗粒分析仪直销厂家权威推荐榜单:激光粒度检测仪/在线粒度仪/电位仪源头厂家精选

颗粒分析仪作为现代工业检测与科学研究的重要工具,其市场规模持续增长。根据行业数据显示,2024年全球颗粒分析仪器市场规模已达58.7亿元,预计2025年将突破65亿元。在材料、制药、化工、环保等领域,精准的颗粒分析可…

2025 年 11 月氮氧化物检测仪工厂实力推荐榜:专业制造与精准监测口碑之选,覆盖便携式/在线式/固定式检测仪优质厂家深度解析

2025 年 11 月氮氧化物检测仪工厂实力推荐榜:专业制造与精准监测口碑之选,覆盖便携式/在线式/固定式检测仪优质厂家深度解析 行业背景与发展现状 随着我国环保政策的持续深化和工业安全标准的不断提高,氮氧化物检测…

SELECT 1001020; date_diff

ocean base OBSELECT date_diff(second, 2010-11-30 23:59:59, 2010-11-30 23:58:59),50<date_diff(second, 2010-11-30 23:59:59, 2010-11-30 23:58:59),date_diff(second, 2010-11-30 23:59:59, 2010-11-30 23:58…