【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

暴力枚举每次走哪里就好。
用一个二维数组来判重。(数据里,要求不能经过一个点两次->但路径可以相交
然后再用一个flag数组,来判断这个点能不能走。

【代码】

/*1.Shoud it use long long ?2.Have you ever test several sample(at least therr) yourself?3.Can you promise that the solution is right? At least,the main ideal4.use the puts("") or putchar() or printf and such things?5.init the used array or any value?6.use error MAX_VALUE?7.use scanf instead of cin/cout?8.whatch out the detail input require
*/
/*一定在这里写完思路再敲代码!!!
*/
#include <bits/stdc++.h>
using namespace std;const int N = 400;
const int O = 200;const int dx[4] = {1,0,0,-1};
const int dy[4] = {0,1,-1,0};
const char dir[4] = {'e','n','s','w'};int to[300],a[N],n,ans;
vector<int> g[300];
int flag[N+10][N+10];
int vis[N+10][N+10];void init(){to['e'] = 0;to['n'] = 1;to['s'] = 2;to['w'] = 3;g['e'].push_back('n');g['e'].push_back('s');g['n'].push_back('e');g['n'].push_back('w');g['s'].push_back('e');g['s'].push_back('w');g['w'].push_back('n');g['w'].push_back('s');
}void dfs(int dep,int x,int y,int pre){if (vis[O+x][O+y]) return;vis[O+x][O+y] = 1;if (dep==n){if (x==0 && y==0){ans++;for (int i = 1;i <= dep;i++) cout << dir[a[i]];cout << endl;}vis[O+x][O+y] = 0;return;}for (int i = 0;i < (int) g[pre].size();i++){int tx = dx[to[g[pre][i]]],ty = dy[to[g[pre][i]]];bool ok = true;for (int j = 1;j <= dep+1;j++){int nx = x + tx*j,ny = y + ty*j;if (flag[O+nx][O+ny]==1){ok = false;break;}if (j==(dep+1)) tx = nx,ty = ny;}if (!ok) continue;a[dep+1] = to[g[pre][i]];dfs(dep+1,tx,ty,g[pre][i]);}vis[O+x][O+y] = 0;
}int main(){#ifdef LOCAL_DEFINEfreopen("rush_in.txt", "r", stdin);#endifios::sync_with_stdio(0),cin.tie(0);init();int T;cin >> T;while (T--){memset(flag,0,sizeof flag);memset(vis,0,sizeof vis);ans = 0;cin >> n;int k;cin >> k;while (k--){int x,y;cin >> x >> y;flag[O+x][O+y] = 1;}for (int i = 0;i < 4;i++){if (flag[O+0][O+0] || flag[O+dx[i]][O+dy[i]]) continue;a[1] = i;dfs(1,dx[i],dy[i],dir[i]);}cout <<"Found "<<ans<<" golygon(s)."<<endl<<endl;}return 0;}

转载于:https://www.cnblogs.com/AWCXV/p/8079291.html

【习题 7-2 UVA-225】Golygons相关推荐

  1. 习题3-11 Kickdown UVA - 1588

    不知道是我把题意理解错了还是题目出错了,我觉得,在题目的要求之下,如果能够反转其中一块板,那么会得到更短的长度.但是测试数据表明不需要反转板. 刚开始写怎么写都写不对,因为对相交部分的考虑不够细致,处 ...

  2. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  3. 习题9-2(免费糖果)【深搜dfs】+【记忆化搜索】

    习题9-2 [UVa 10118]Free Candies(免费糖果) 题目大意: 桌上有4堆糖果,每堆有N(N<=40)颗.佳佳有个最多可以装5颗糖果的小篮子.他每次选择一堆糖果,把最顶上的一 ...

  4. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)

    文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...

  5. 最优化理论c语言代码,《统计学习导论基于R应用》PDF代码导图+《最优化理论与算法第2版》PDF习题指导...

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握统计学.最优化.矩阵及其应用等知识. 推荐<统计学习导论:基于R应用>,适合运用统计学习前沿技术分析数据的人士.读起来不费 ...

  6. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  7. 动态规划总结(01背包 完全背包 多重背包)

    动态规划总结(01背包 完全背包 多重背包) 一.学习资料 1.UVA DP 入门专题 2.夜深人静写算法(二) - 动态规划 3.算法之动态规划 4.什么是动态规划?动态规划的意义是什么? 5.01 ...

  8. UVa #1533 Moving Pegs (习题7-12)

    跳棋+黑白棋,模拟大法好 这次的码写的挺丑的,而且速度也很慢,只是摸爬滚打刚刚够AC Rujia说第七章的习题想达到更好的效果要做10道,现在做了8道.其实中途还做了其他的,但是最终都没能做完或者AC ...

  9. 28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告

    励志用少的代码做高效的表达 题目(提交)链接→UVA-11809 算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了. 这个题基本就是帮着你复习了一遍浮点数的存储方式了.浮点数在计算机里 ...

  10. UVa 1600 Patrol Robot (习题 6-5)

    传送门: https://uva.onlinejudge.org/external/16/1600.pdf 多状态广搜 网上题解: 给vis数组再加一维状态,表示当前还剩下的能够穿越的墙的次数,每次碰 ...

最新文章

  1. 如何评价百度造车?字很少,事很大
  2. DataGrid中添加DropdownList时的数据绑定
  3. VS2008的网页报表可以直接打印了
  4. MySQL运算符优先级顺序
  5. 开发日志_Jan.8.2017
  6. 微模式重金招聘高级图像算法工程师
  7. 13 Process Lifecycle: Process Creation and Termination
  8. [RK3399][Android7.1] 基于regmap的I2C实现方法
  9. 完整卸载SQL Server2008
  10. 为Android购买多个改装微信,从制作一个“微信多开版”看微信安全
  11. svn分支合并到主干
  12. MyBatis出现参数索引越界
  13. 【网页设计】基于HTML+CSS+JavaScript制作美食网站舌尖上的美食
  14. 《计算广告学之内容匹配广告展示广告原理、技术和实践》学习笔记
  15. 发版名词介绍(alpha,beta,RC,Release)
  16. python按行读字符串,python按行读取文件并找出其中指定字符串
  17. 现在啥软件都有开源,BI 呢?干货推荐
  18. 【JTeam Champion NFT】一张nft头像价值千万,能抵一套房,nft是数字艺术还是金融泡沫?
  19. c#窗体应用计算机设计,C#应用程序设计
  20. java销售管理系统_图书销售管理系统Java源代码

热门文章

  1. HTML5 file对象和blob对象的互相转换
  2. 如何实现按钮水平居中
  3. IntelliJ IDEA如何build path
  4. 采集gpu_GPU温度的采集
  5. 资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统
  6. 树莓派3B+ (PPOE+hostapd)变身无线路由器
  7. Android内存泄漏检测利器:LeakCanary
  8. Python基础-使用paramiko
  9. 并查集图冲突hdu1272
  10. SDWebImage之工具类