Jumping on Walls CodeForces - 198B
2018-06-17 21:45:59来源:未知 阅读 ()
Jumping on Walls CodeForces - 198B
应该是一个隐式图的bfs,或者叫dp。
先是一个TLE的O(nklogn)
1 #include<cstdio> 2 #include<set> 3 using namespace std; 4 typedef pair<bool,int> P; 5 set<P> ss[2]; 6 P t; 7 char s[2][100100]; 8 int n,k,ii; 9 int main() 10 { 11 int i,num,hei; 12 scanf("%d%d",&n,&k); 13 scanf("%s",s[0]+1); 14 scanf("%s",s[1]+1); 15 if(s[0][1]!='X') ss[0].insert(P(0,1)); 16 for(i=1;i<=n;i++) 17 { 18 ii^=1; 19 ss[ii].clear(); 20 for(auto t:ss[ii^1]) 21 { 22 num=t.first; 23 hei=t.second; 24 if(hei+k>n) 25 { 26 puts("YES"); 27 return 0; 28 } 29 if(hei-1>i&&s[num][hei-1]!='X') 30 ss[ii].insert(P(num,hei-1)); 31 if(hei+1>i&&s[num][hei+1]!='X') 32 ss[ii].insert(P(num,hei+1)); 33 if(hei+k>i&&s[num^1][hei+k]!='X') 34 ss[ii].insert(P(num^1,hei+k)); 35 } 36 } 37 puts("NO"); 38 return 0; 39 }
后来意识到了同样的位置,在较早的时间到过之后在较晚的时间再到那里一定不会比较早的时间更好,因此相同状态只需遍历一次,可以把复杂度优化到O(nlogn)(话说这不是显而易见吗,怎么就没有想到呢)
1 #include<cstdio> 2 #include<set> 3 using namespace std; 4 typedef pair<bool,int> P; 5 set<P> ss[2]; 6 P t; 7 char s[2][100100]; 8 int n,k,ii; 9 bool vis[2][100100]; 10 int main() 11 { 12 int i,num,hei; 13 scanf("%d%d",&n,&k); 14 scanf("%s",s[0]+1); 15 scanf("%s",s[1]+1); 16 if(s[0][1]!='X') ss[0].insert(P(0,1)); 17 for(i=1;i<=n;i++) 18 { 19 ii^=1; 20 ss[ii].clear(); 21 for(auto t:ss[ii^1]) 22 { 23 num=t.first; 24 hei=t.second; 25 if(hei+k>n) 26 { 27 puts("YES"); 28 return 0; 29 } 30 if(hei-1>i&&s[num][hei-1]!='X'&&(!vis[num][hei-1])) 31 ss[ii].insert(P(num,hei-1)),vis[num][hei-1]=1; 32 if(hei+1>i&&s[num][hei+1]!='X'&&(!vis[num][hei+1])) 33 ss[ii].insert(P(num,hei+1)),vis[num][hei+1]=1; 34 if(hei+k>i&&s[num^1][hei+k]!='X'&&(!vis[num^1][hei+k])) 35 ss[ii].insert(P(num^1,hei+k)),vis[num^1][hei+k]=1; 36 } 37 } 38 puts("NO"); 39 return 0; 40 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- CodeForces 1326E - Bombs 2020-03-25
- CodeForces 1320D - Reachable Strings 2020-03-20
- CodeForces 1324 - Codeforces Round #627 (Div. 3) 2020-03-13
- CodeForces 710D Two Arithmetic Progressions 2020-03-06
- CodeForces 1313D Happy New Year 2020-03-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash