jzoj4228-C【dp】

正题


题目大意

每个点往可以往4个方向之一发射光,要求光不可以相交且不可以经过别的点,求方案总数。


解题思路

将点按xxx排序,

fl,r,u,d,if_{l,r,u,d,i}fl,r,u,d,i表示放到第iii个点,最上面的向下发射的点为lll,最下面的向上发射的点为rrr,最上面的向右发射的点为uuu,最下面的向右发射的点为ddd

然后每次枚举方向,之后判断一下,且更新新的。最后一维要滚动。

就是细节很恶心


codecodecode

#pragma GCC optimize(2)
%:pragma GCC optimize(3)
%:pragma GCC optimize("Ofast")
%:pragma GCC optimize("inline")
%:pragma GCC optimize("-fgcse")
%:pragma GCC optimize("-fgcse-lm")
%:pragma GCC optimize("-fipa-sra")
%:pragma GCC optimize("-ftree-pre")
%:pragma GCC optimize("-ftree-vrp")
%:pragma GCC optimize("-fpeephole2")
%:pragma GCC optimize("-ffast-math")
%:pragma GCC optimize("-fsched-spec")
%:pragma GCC optimize("unroll-loops")
%:pragma GCC optimize("-falign-jumps")
%:pragma GCC optimize("-falign-loops")
%:pragma GCC optimize("-falign-labels")
%:pragma GCC optimize("-fdevirtualize")
%:pragma GCC optimize("-fcaller-saves")
%:pragma GCC optimize("-fcrossjumping")
%:pragma GCC optimize("-fthread-jumps")
%:pragma GCC optimize("-funroll-loops")
%:pragma GCC optimize("-fwhole-program")
%:pragma GCC optimize("-freorder-blocks")
%:pragma GCC optimize("-fschedule-insns")
%:pragma GCC optimize("inline-functions")
%:pragma GCC optimize("-ftree-tail-merge")
%:pragma GCC optimize("-fschedule-insns2")
%:pragma GCC optimize("-fstrict-aliasing")
%:pragma GCC optimize("-fstrict-overflow")
%:pragma GCC optimize("-falign-functions")
%:pragma GCC optimize("-fcse-skip-blocks")
%:pragma GCC optimize("-fcse-follow-jumps")
%:pragma GCC optimize("-fsched-interblock")
%:pragma GCC optimize("-fpartial-inlining")
%:pragma GCC optimize("no-stack-protector")
%:pragma GCC optimize("-freorder-functions")
%:pragma GCC optimize("-findirect-inlining")
%:pragma GCC optimize("-fhoist-adjacent-loads")
%:pragma GCC optimize("-frerun-cse-after-loop")
%:pragma GCC optimize("inline-small-functions")
%:pragma GCC optimize("-finline-small-functions")
%:pragma GCC optimize("-ftree-switch-conversion")
%:pragma GCC optimize("-foptimize-sibling-calls")
%:pragma GCC optimize("-fexpensive-optimizations")
%:pragma GCC optimize("-funsafe-loop-optimizations")
%:pragma GCC optimize("inline-functions-called-once")
%:pragma GCC optimize("-fdelete-null-pointer-checks")
#include<cstdio>
#include<algorithm>
using namespace std;
const int XJQ=998244353,N=55;
struct node{int x,y;
}a[N];
int n,ans;
int f[N][N][N][N][2];
int Min(int x,int y)
{if(!y) return x;if(!x) return y;if(a[x].y<a[y].y) return x;return y;
}
int Max(int x,int y)
{if(!y) return x;if(!x) return y;if(a[x].y>a[y].y)return x;return y;
}
bool cmp(node x,node y){return x.x<y.x||(x.x==y.x&&x.y<y.y);
}
bool check(int i,int j,int k)
{if(j==0&&a[k].x==a[i+1].x&&a[k].y>a[i+1].y)return false; if(j==1&&a[k].x==a[i+1].x&&a[k].y<a[i+1].y)return false;if(j==2&&a[k].y==a[i+1].y&&a[k].x<a[i+1].x)return false; if(j==3&&a[k].y==a[i+1].y&&a[k].x>a[i+1].x)return false; return true;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y);sort(a+1,a+1+n,cmp);int p=0,q=1; f[0][0][0][0][0]=1;for(int i=0;i<n;i++){for(int j=0;j<4;j++){bool flag=false;for(int k=1;k<=n;k++)if(!check(i,j,k)){flag=true;break;}if(flag)continue;for(int l=0;l<=i;l++)for(int r=0;r<=i;r++)for(int u=0;u<=i;u++)for(int d=0;d<=i;d++){if(f[l][r][u][d][p]){if(j==0&&(a[l].y<a[i+1].y||!l))(f[l][r][Min(i+1,u)][d][q]+=f[l][r][u][d][p])%=XJQ;if(j==1&&(a[r].y>a[i+1].y||!r))(f[l][r][u][Max(i+1,d)][q]+=f[l][r][u][d][p])%=XJQ;if(j==2&&((a[u].y>a[i+1].y&&a[d].y<a[i+1].y)||(!u&&!d)||(a[u].y>a[i+1].y&&!d)||(a[d].y<a[i+1].y&&!u)))(f[l][r][u][d][q]+=f[l][r][u][d][p])%=XJQ;if(j==3)(f[Max(i+1,l)][Min(i+1,r)][u][d][q]+=f[l][r][u][d][p])%=XJQ;}}}p=(p+1)&1;q=(q+1)&1;for(int l=0;l<=n;l++)for(int r=0;r<=n;r++)for(int u=0;u<=n;u++)for(int d=0;d<=n;d++)f[l][r][u][d][q]=0;}for(int l=0;l<=n;l++)for(int r=0;r<=n;r++)for(int u=0;u<=n;u++)for(int d=0;d<=n;d++){//if(f[l][r][u][d][p]) printf("%d-%d-%d-%d:%d\n",l,r,u,d,f[l][r][u][d][p]);ans=(ans+f[l][r][u][d][p])%XJQ;}printf("%d",ans);
}

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

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

相关文章

TFS在项目中DevOps落地进程(下)

紧接上篇 TFS在项目中Devops落地进程&#xff08;上&#xff09; 再接着说TFS相关之前先插入一个番外篇&#xff0c;虽然跟TFS关系不大但跟DevOps关系很大&#xff0c;觉得有必要在此乱入一下。 番外篇--监控之Application Insights 我们之前并没有任何监控类产品&#xff08;我…

Js如何判断undefined和null

判断是否为undefined var example undefined; if (typeof(example) "undefined") {console.log("undefined") }判断是否为null var example null; if (!example && typeof(example)!undefined && example!0) {console.log("nu…

Spring Data之MongoDB配置

一、重写基类扩展功能 package com.mk.mongodb.repository;import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.Aggregation…

欢乐纪中某B组赛【2019.1.28】

前言 心态爆炸 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCCDDD3332017myself2017myself2017myself1901901901001001005050500004040401313132017zyc2017zyc2017zyc1701701707070706060600004040401313132017hzb2017hzb2017hzb1701…

这应该是目前最快速有效的ASP.NET Core学习方式(视频)

ASP.NET Core都2.0了&#xff0c;它的普及还是不太好。作为一个.NET的老司机&#xff0c;我觉得.NET Core给我带来了很多的乐趣。Linux&#xff0c; Docker&#xff0c; CloudNative&#xff0c;MicroService&#xff0c;DevOps这些都能跟它很完美的结合&#xff0c;再加ASP.NE…

大叔公开课~微服务与持久集成

闲话多说 免费报名&#xff1a;http://www.genshuixue.com/teacher/classCourseDetail/171117794648么可以通过阅读原文报名 .Net Core来了&#xff0c;带给我们的是什么&#xff1f;跨平台&#xff0c;无疑是最大的亮点&#xff01; Docker横空出世&#xff0c;让开发者和运维…

语音服务——腾讯云

腾讯语音服务文档 一、开通语音消息服务流程 &#xff08;1&#xff09;注册并认证 如果您还没有腾讯云账号&#xff0c;您需要 注册腾讯云 账号&#xff0c;并完成 企业实名认证。如果您已有企业认证的腾讯云账号&#xff0c;请直接进行下一步操作。 申请开通语音消息服务 …

P4231-三步必杀【差分】

正题 题目大意 修改[L..R][L..R][L..R]加上[S..E][S..E][S..E]的等差数列&#xff0c;求最终答案。 题目大意 很明显的差分。 aia_iai​为原数组&#xff0c;bib_ibi​为一阶差分数组&#xff0c;cic_ici​为二阶差分数组 axaxs(x−l)∗k(x∈[l..r])a_xa_xs(x-l)*k(x\in[l..r…

请用JavaScript实现一个函数,接受一-个IP白名单列表whitelist以及列表ipList

请用JavaScript实现一个函数&#xff0c;接受一-个IP白名单列表whitelist以及 列表ipList,判断输入的ipList中是否有任何ip包含在whitelist中&#xff0c;如果存在返回true,如果都不存在返回false。要求:1.列出所有测试用例2.定义并实现该函数&#xff0c;有完整出入参*示例:如…

Visual Studio交叉编译器提供对ARM的支持

只要ARM平台能够运行Windows&#xff0c;Visual Studio就有能力拓展ARM平台。在Visual Studio 2017 15.5预览版2中&#xff0c;该IDE通过使用GCC编译器&#xff0c;增加了对基于ARM的计算机和物联网&#xff08;IoT&#xff09;设备的支持力度&#xff0c;从而扩展了对ARM平台的…

Flume均匀发送数据到kafka的partition配置UUID Interceptor生成key的坑

一、需求 Flume向kafka发送数据时&#xff0c;同一个flume发送到kafka的数据总是固定在某一个partition中。而业务需求是发送的数据在所有的partition平均分布 二、实现 Flume的官方文档&#xff1a; Kafka Sink uses the topic and key properties from the FlumeEvent hea…

jzoj4244-yi【贪心】

正题 题目大意 一些飞船&#xff0c;选最少的&#xff0c;使得可以载所有乘客来回两次 解题思路 因为代价都是一样的&#xff0c;选载客最多可以往返两次的就好了。 codecodecode #include<cstdio> #include<algorithm> using namespace std; const int N100010…

我心中的ASP.NET Core 新核心对象WebHost(二)

这是ASP.NET Core新核心对象系列的第二篇&#xff0c;上一篇 WebHost准备阶段 我们讲到了WebHostBuilder的初始化及配置。我们给WebHostBuilder进行以下配置 UseKestrel 设置Kestrel为HttpServer ConfigureAppConfiguration 设置了配置文件 ConfigureLogging 配置了日志处理器…

Vue及React脚手架安装

React npm i -g create-react-app create-react-app project React路由安装 yarn add react-router-dom Vue cnpm install -g vue-cli vue create project

Hadoop生态Flume(三)拦截器(Interceptor)介绍与使用(1)

转载自 Flume中的拦截器&#xff08;Interceptor&#xff09;介绍与使用&#xff08;一&#xff09; Flume中的拦截器&#xff08;interceptor&#xff09; 用户Source读取events发送到Sink的时候&#xff0c;在events header中加入一些有用的信息&#xff0c;或者对events的…

SOA对微服务的残余影响

近日&#xff0c;Tareq Abedrabbo在伦敦2017 Con微服务大会上说&#xff0c;SOA对微服务架构设计的残余影响仍然存在&#xff0c;包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员&#xff0c;架构师负责出规范&#xff0c;开发人员…

如何查看python安装路径

import sys sys.path 我的安装地址 python2: C:\Users\Tecna1205\Miniconda python3: C:\Users\Tecna1205\AppData\Local\Programs\Python\Python37 python3 -m pip install --upgrade pip --force-reinstall

jzoj4245-er【dp,贪心】

正题 题目大意 nnn个武器(n≤2n\leq2n≤2)&#xff0c;mmm个符文 符文1:直接改变一个武器的攻击力(最多一个) 符文2:增加一个武器的攻击力 符文3:使一个人的武器攻击力翻若干倍 求武器攻击力乘积最大&#xff0c;输出答案的自然对数。 解题思路 首先log(ab)log(a)log(b)lo…

Hadoop生态Flume(四)拦截器(Interceptor)介绍与使用(2)

转载自 Flume中的拦截器&#xff08;Interceptor&#xff09;介绍与使用&#xff08;二&#xff09; lume中的拦截器&#xff08;interceptor&#xff09;&#xff0c;用户Source读取events发送到Sink的时候&#xff0c;在events header中加入一些有用的信息&#xff0c;或者对…

协作更进一步:微软隆重介绍Visual Studio动态分享功能

微软刚刚在 Visual Studio Code 网站上宣布了“动态分享”&#xff08;Live Share&#xff09;功能&#xff0c;开发者们可以在 VS 2017 或 VS Code 中体验全新的实施协作。微软表示&#xff0c;Live Share 可让团队在相同的代码库上启用快速协作&#xff0c;而无需同步代码或配…