关键词:
当时没来的及做,应该是一道不是太难的搜索题。
首先,可以想到可行解的数量一定远远少于不可行解的数量;
与其我们直接搜索,倒不如我们根据(x,y)构造可行解,然后判断。
代码实现:
1 #include<map> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 typedef long long LL; 6 const int dx[8] = {0,1,0,-1,1,-1,1,-1}; 7 const int dy[8] = {1,0,-1,0,1,-1,-1,1}; 8 const int ch[9][9] = {{0,2,1,6,8,7,3,5,4},{2,1,0,8,7,6,5,4,3},{1,0,2,7,6,8,4,3,5}, 9 {6,8,7,3,5,4,0,2,1},{8,7,6,5,4,3,2,1,0},{7,6,8,4,3,5,1,0,2}, 10 {3,5,4,0,2,1,6,8,7},{5,4,3,2,1,0,8,7,6},{4,3,5,1,0,2,7,6,8}}; 11 map <LL,int> ma; 12 int n,m,k,X,Y,p[10][10],x[10],y[10]; 13 LL now,goal,fac[10],che[10]; 14 inline int ABS(int x) {return x < 0?-x:x;} 15 void Add(int X1,int Y1,int X2,int Y2){ 16 int A=3*(X1%3)+Y1%3; 17 int B=3*(X2%3)+Y2%3; 18 p[A][B]=p[B][A]=1; 19 } 20 void Work(int a,int b){ 21 for (int l=0;l<8;l++){ 22 int xa=a+dx[l]*3; 23 int yb=b+dy[l]*3; 24 if(xa<1||xa>n||yb<1||yb>m) continue; 25 for(int i=0;i<8;i++){ 26 int xx=xa+dx[i]; 27 int yy=yb+dy[i]; 28 if(xx<1||xx>n||yy<1||yy>m) continue; 29 Add(a,b,xx,yy); 30 } 31 } 32 for (int i=0;i<8;i++){ 33 int xx=a+dx[i],yy=b+dy[i]; 34 if(xx<1||xx>n||yy<1||yy>m) continue; 35 Add(a,b,xx,yy); 36 } 37 } 38 bool dfs(LL now,int tot){ 39 if (now == goal) return 1; 40 if (ma[now]) return 0; 41 else ma[now] = 1; 42 if (tot == 1) return 0; 43 for (int i = 0; i < 9; i++) 44 for (int j = i + 1; j < 9; j++) 45 if (p[i][j] && che[i] && che[j]) { 46 --che[i]; --che[j]; ++che[ch[i][j]]; 47 LL nex = 0; 48 for (int l = 0; l < 9; l++) nex += fac[l]*che[l]; 49 if (dfs(nex,tot-1)) return 1; 50 ++che[i]; ++che[j]; --che[ch[i][j]]; 51 } 52 return 0; 53 } 54 int main(){ 55 #ifdef YZY 56 freopen("galaxy4.in","r",stdin); 57 #endif 58 fac[0] = 1; 59 for (int i = 1; i < 10; i++) fac[i] = fac[i-1]*11LL; 60 while (scanf("%d%d%d%d%d",&k,&n,&m,&X,&Y) != EOF) { 61 memset(p,0,sizeof(p)); memset(che,0,sizeof(che)); ma.clear(); 62 goal = fac[3*(X%3) + Y%3]; 63 for (int i = 0; i < k; i++) { 64 scanf("%d%d",&x[i],&y[i]); 65 ++che[3*(x[i]%3) + y[i]%3]; 66 } 67 for (int i = 1; i <= n; i++) 68 for (int j = 1; j <= m; j++) 69 Work(i,j); 70 LL st = 0; 71 for (int i = 0; i < 9; i++) st += che[i]*fac[i]; 72 if (dfs(st,k)) printf("Yes "); 73 else printf("No "); 74 } 75 return 0; 76 }
题目来源:Pku 3490
银河之星(乱搞+记忆化搜索)
TimeLimit:1000ms MemoryLimit:256MBDescription 题解 乍一看真的无从下手,规则一脸懵逼。 首先看到第3个规则,每个棋子往任意方向都只能走3格。可以联想一下国际象棋四个象,2个永远在黑格,2个永远... 查看详情
在 Galaxy Tab 中获取当前位置
...在androidEmulator中正常工作。但是当我将此代码集成到我的银河选项卡中时,我无法获得当前的纬度和经度......所以任何人都有设备解决方案,而不是请帮助我.... 查看详情
电话链接android不工作(银河S5)
】电话链接android不工作(银河S5)【英文标题】:tellinkandroidnotworking(GalaxyS5)【发布时间】:2014-10-1719:46:42【问题描述】:我是移动混合应用开发的新手。我有一个用Angular和Ionic开发的HTML5混合应用程序,在应用程序的一部分中,... 查看详情
我们如何将三星银河皮肤添加到安卓模拟器中?
】我们如何将三星银河皮肤添加到安卓模拟器中?【英文标题】:HowcanweaddSamsunggalaxyskinintoandroidemulator?【发布时间】:2020-09-2117:53:44【问题描述】:我是android开发新手,我想知道如何将三星Galaxy设备/皮肤添加到我的模拟器中?... 查看详情
英语我要宇宙所有的单词,例如地球、火星、外星、银河系
...小行星aerolite陨石satellite卫星constellation星座nebula星云galaxy银河ringofSaturn土星环MilkyWay银河orbit轨道apsis拱点equator赤道zenith天顶epicycle本轮apogee远地点perigee近地点node交点limb边缘solarsystem太阳系sun太阳photosphere光球chromosphere色球solarcor... 查看详情
博客之星,你最行
五星互评:https://bbs.csdn.net/topics/603956779博客之星。 查看详情
Galaxy S10、S10+ 全屏模式
】GalaxyS10、S10+全屏模式【英文标题】:GalaxyS10,S10+FullScreenMode【发布时间】:2019-08-0311:36:42【问题描述】:如何用三星GalaxyS10和S10+实现全屏模式,以下代码对我不起作用:getWindow().getDecorView().setSystemUiVisibility(//Setthecontenttoappearund... 查看详情
hdu5073galaxy
DescriptionGoodnewsforus:toreleasethefinancialpressure,thegovernmentstartedsellinggalaxiesandwecanbuythemfromnowon!ThefirstonewhoboughtagalaxywasTianmingYunandhegaveittoXinChengasapresent. Tobefa 查看详情
Galaxy S4 Android 自定义相机问题
】GalaxyS4Android自定义相机问题【英文标题】:GalaxyS4AndroidCustomCameraIssue【发布时间】:2015-04-0223:54:07【问题描述】:我正在开发一个带有自定义相机的应用。摩托罗拉MotoG一切正常,但是当我尝试保存GalaxyS4拍摄的照片时,它需要... 查看详情
相机意图不适用于三星 Galaxy S3
】相机意图不适用于三星GalaxyS3【英文标题】:CameraintentnotworkingwithSamsungGalaxyS3【发布时间】:2013-02-2107:09:19【问题描述】:我有一个活动,我让用户可以选择单击相机中的图像,然后将此图像存储在字节数组和数据库中。但是... 查看详情
Android Websocket 连接失败(Galaxy s4)
】AndroidWebsocket连接失败(Galaxys4)【英文标题】:AndroidWebsocketconnectionfailed(Galaxys4)【发布时间】:2016-09-2217:54:24【问题描述】:我遇到了奇怪的错误。我们有一个使用javawebsockets1.3.0的Android应用程序。websocket在任何设备或模拟器... 查看详情
wps2019银河麒麟版本怎
参考技术A题主是否想询问“wps2019银河麒麟版本怎么下载吗”?去wps官网下载。wps2019银河麒麟版本去wps官网下载。银河麒麟是总部在天津的企业有国防科大还有ubuntu的母公司一起在维护。 查看详情
银河麒麟ssh工具连接被拒绝
参考技术A刚安装好的银河麒麟无法远程ssh登录。在银河麒麟终端上用root用户 查看详情
galaxy2d游戏引擎常见问题解答
◆Galaxy2D游戏引擎开源吗? Galaxy2D游戏引擎不开源。 ◆Galaxy2D相对HGE有何优点? Galaxy2D相对HGE有以下优点: (1)自带音频播放功能,HGE需要通过bass.dll播放音频文件,而bass.dll是要收费... 查看详情
为啥 Galaxy S21 没有自定义通知声音
】为啥GalaxyS21没有自定义通知声音【英文标题】:WhyisGalaxyS21notdoingcustomnotificationsounds为什么GalaxyS21没有自定义通知声音【发布时间】:2022-01-0316:17:17【问题描述】:我有一个应用程序可以发出由日历事件触发的自定义通知声音... 查看详情
带有 Galaxy S3 的 Android 蓝牙 SPP
】带有GalaxyS3的Android蓝牙SPP【英文标题】:AndroidBluetoothSPPwithGalaxyS3【发布时间】:2012-08-2917:54:39【问题描述】:我正在尝试在运行Android4.0.3的三星GalaxyS3和RN42蓝牙芯片之间建立蓝牙连接,here是型号:我使用了很多不同的代码来... 查看详情
并查集银河英雄传说
[codevs1540]银河英雄传说 2002年NOI全国竞赛 时间限制:1s 空间限制:256000KB 题目等级:大师Master 题目描述 Description公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年... 查看详情
Android BLE 扫描屏幕关闭(使用 Galaxy)
】AndroidBLE扫描屏幕关闭(使用Galaxy)【英文标题】:AndroidBLEscanwithscreenoff(withGalaxy)【发布时间】:2020-08-0612:11:35【问题描述】:我正在使用GalaxyS10,android10。来自here,三星设备的BLE扫描需要非空扫描过滤器才能在屏幕关闭状态... 查看详情