首页 > 其他分享 >abc265e Warp

abc265e Warp

时间:2023-08-28 12:22:06浏览次数:67  
标签:ll make Warp fo pair include abc265e lld

Warp
大概就是个dp
f[n][x][y]表示走了n步,第一种走了x次,第二种走了y次。

不过写来写去发现都会TLE,N^3怎么会TLE呢?
后面发现原来是map的写法一直有问题,
比如判断一个点是否可行,我是这样的

if (!h[make_pair(x,y)]) {

}

这样的话其实是相当于将(x,y)插入进去,所以就会变慢

正确的写法应该是

if (h.find(make_pair(x,y))==h.end()) {
}

那我以前用到map的题,究竟是怎么过的啊?

#include<algorithm>
#include<cstdio>
#include<cstring>
#include<set>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<map>
#define fo(i,a,b) for (int (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (int (i)=(b);(i)>=(a);(i)--)
#define mk(x,y) make_pair((x),(y))
#define mm(x,y,z) make_pair(make_pair((x),(y)),(z))
#define lc (o<<1)
#define rc ((o<<1)|1)
#define A puts("YES")
#define B puts("NO")

using namespace std;
typedef double db;
typedef long long ll;
const ll mo=998244353;
ll f[2][305][305];
map<pair<ll,ll>,bool> h;
ll p,q,n,m,u,v;
set<pair<ll,ll>> s;
ll a[10],b[10],x,y,xx,yy,w,pa,pb,pc,t[10],ans;
void add(ll &x,ll y){
	x+=y;
	if (x>=mo) x-=mo;
}
int main() {

//    freopen("data.in","r",stdin);
    scanf("%lld %lld",&n,&m);
  	fo(i,1,3) scanf("%lld %lld",&a[i],&b[i]);
  	
  	fo(i,1,m) {
  		scanf("%lld %lld",&x,&y);
  		h[mk(x,y)]=1;
	}
	
	p=1; q=0; f[1][0][0]=1;
	fo(T,0,n-1) {
		for (t[1]=0; t[1]<=T; t[1]++) {
			for (t[2]=0; t[2]<=T-t[1]; t[2]++) {
				t[3]=T-t[1]-t[2];
				
				x=y=0;
				fo(j,1,3) {
					x+=t[j]*a[j];
					y+=t[j]*b[j];
				}
				
				u=t[1];
				v=t[2];

				fo(j,1,3) {
					xx=x+a[j];
					yy=y+b[j];
					if (h.find(mk(xx,yy))==h.end()) {
						if (j==1) add(f[q][u+1][v], f[p][u][v]);
						if (j==2) add(f[q][u][v+1], f[p][u][v]);
						if (j==3) add(f[q][u][v], f[p][u][v]);
					}
				}
			}
		}
		fo(i,0,n) fo(j,0,n) f[p][i][j]=0;
		p^=1; q=1^p;
	}
	
	fo(i,0,n) fo(j,0,n) add(ans, f[p][i][j]);
	printf("%lld",ans);
	
  	
  	
	return 0;
}  

 

标签:ll,make,Warp,fo,pair,include,abc265e,lld
From: https://www.cnblogs.com/ganking/p/17661991.html

相关文章

  • 【Python&RS】GDAL库Warp函数介绍
    ​        GDAL(GeospatialDataAbstractionLibrary)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。 Python的GDAL库作为栅格数据的处理转换库,其支持几百种栅格数......
  • CloudFlare-WARP使用教程
    title:CloudFlareWARP使用教程author:枷锁云-星尘avatar:https://pic.rmb.bdstatic.com/bjh/4d0bc5251b0b8744c872e9021acea141.pngcomments:truedate:2023-05-2020:28:22categories:技术教程tags:技术教程top_img:https://npm.elemecdn.com/[email protected]/......
  • flex-warp换行后之间的间隔调整
    情况:当使用flex-warp:warp时,没加align-content之前,元素在换行之后,剩余空间被所有行平分,各行将会伸展以占用剩余的空间。 解决:需要使用align-content改变剩余空间分配方式 ......
  • 使用WARP,加速网站访问
    https://hostloc.com/thread-1024969-1-1.html1.使用全局模式代理2.直接下载使用3.利用优选工具可以使IPv4直接支持访问ipv6的能力......
  • 开启 CloudFlare Warp 导致外部IP无法连接的解决办法
    add-excluded-routewarp-cliadd-excluded-route你的客户端IP地址然后我们可以查询:$warp-cliget-excluded-routesExcludedroutes:...你的客户端IP地址/32......
  • Unbiased Warped-Area Sampling for Differentiable Rendering
    渲染方程\(I(\theta)=\int_Df(w,\theta)dw\)。其中\(D\)是某个积分域(比如半球空间),\(\theta\)是场景参数,比如(顶点位置,材质参数等等)。对于可微分渲染,我们实际上感兴趣的是......
  • Warp(DP)
    题意有一个人站在二维平面的原点处。他将会进行\(N\)次传送,每次传送他可以做如下三种移动中的一种:从当前位置\((X,Y)\)移动到\((X+A,Y+B)\)从当前位置\((X,Y)\)移动到......
  • AtCoder-abc265_e Warp
    Warpdp状态优化一开始想到的状态为:\(dp[i][x][y]\),第\(i\)步走到\((x,y)\)的方案数,但是发现状态转移非常难写,原因是坐标计算非常大后来可以优化一下\(dp\)的状态......
  • ABC265E Warp
    题意Takahashi在二维平面的原点,它可以瞬移\(N\)次,每次可以从当前点\((x,y)\)瞬移至\((x+A,y+B)\),\((x+C,y+D)\),\((x+E,y+F)\)中的任一点.平面上有\(M\)个障碍点不能到......