洛谷 2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
一道水状压,然而不知道是不是太久没做过dp了,我盯着它二十分钟才反应过来。。。。
还把数组开小了WA了一发QAQ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | //Twenty #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<vector> #include<cmath> #include<queue> #include<ctime> const int maxn=(1<<16)+2; typedef long long LL; using namespace std; int n,kk,nn,cnt[maxn],id[17]; LL dp[2][maxn][16]; namespace fastIO { const int sz=1<<15|1; char ch,buf[sz],*l,*r; void gechar( char &c) { if (l==r) r=(l=buf)+fread(buf,1,sz,stdin); c = l==r?( char )EOF:*l++; } template<typename T> void read(T &x) { int f=1; x=0; gechar(ch); while (ch!= '-' &&(ch< '0' ||ch> '9' )) gechar(ch); if (ch== '-' ) f=-1,gechar(ch); for (;ch>= '0' &&ch<= '9' ;gechar(ch)) x=x*10+ch- '0' ; x*=f; } } void pre() { nn=(1<<n)-1; for ( int i=0;i<=nn;i++) { int tp=i; while (tp) { cnt[i]++; tp-=(tp&(-tp)); } } } void work() { int o=0; dp[o][0][0]=1; id[0]=1e9; LL ans=0; for ( int i=1;i<=n;i++) { o^=1; for ( int j=1;j<=nn;j++) if (cnt[j]==i) { for ( int k=1;k<=n;k++) { int fl=0; if (j&(1<<k-1)) { int pr=j^(1<<k-1); for ( int l=(i!=1);l<=n;l++) if (dp[o^1][pr][l]&&abs(id[l]-id[k])>kk) { if (fl==0) { dp[o][j][k]=dp[o^1][pr][l]; fl=1; } else dp[o][j][k]+=dp[o^1][pr][l]; } } if (!fl) dp[o][j][k]=0; if (i==n) ans+=dp[o][j][k]; } } } printf( "%lld\n" ,ans); } void init() { fastIO::read(n); fastIO::read(kk); for ( int i=1;i<=n;i++) fastIO::read(id[i]); } //#define DEBUG int main() { #ifdef DEBUG freopen( "1.in" , "r" ,stdin); //freopen(".out","w",stdout); #endif init(); pre(); work(); return 0; } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
· Vue3封装支持Base64导出的电子签名组件