1. 程式人生 > >ACM-搜尋 2018刑偵推理題c++dfs回溯解答

ACM-搜尋 2018刑偵推理題c++dfs回溯解答

這裡寫圖片描述

對於這份試卷完全是臨時起意想寫著玩
有程式碼暴力和人工推理部分
1.以下是程式碼片段(暴力)

#include<iostream>
#include<cmath>
using namespace std;
int a[11];
int vis[5],sum=0;
bool judge(){
    sum++;
    int mini=0,maxi=0;
    for(int i=0;i<4;i++){
        mini=vis[i]<vis[mini]?i:mini;
        maxi=vis[i]<vis[maxi]?maxi:
i; } int dei=vis[maxi]-vis[mini]; int temp=0; if(((a[1]==0&&a[4]==2)||(a[1]==1&&a[4]==3)||(a[1]==2&&a[4]==0)||(a[1]==3&&a[4]==1)))temp++;//return false; if(((a[2]==0&&a[1]==a[3]&&a[3]==a[5]&&a[1]!=a[2])||(a[2]==1&&a[1]==a[2
]&&a[2]==a[3]&&a[5]!=a[2])||(a[2]==2&&a[2]==a[3]&&a[2]==a[5]&&a[1]!=a[2])||(a[2]==3&&a[1]==a[2]&&a[2]==a[5]&&a[3]!=a[2])))temp++;//return false; if(((a[3]==0&&a[0]==a[4])||(a[3]==1&&a[1]==a[6])||(a[3]==2&&a[0]==a[8
])||(a[3]==3&&a[5]==a[9])))temp++;//return false; if(((a[4]==0&&a[7]==a[4])||(a[4]==1&&a[3]==a[4])||(a[4]==2&&a[8]==a[4])||(a[4]==3&&a[6]==a[4])))temp++;//return false; if(((a[5]==0&&a[7]==a[1]&&a[7]==a[3])||(a[5]==1&&a[7]==a[0]&&a[7]==a[5])||(a[5]==2&&a[7]==a[2]&&a[7]==a[9])||(a[5]==3&&a[7]==a[4]&&a[7]==a[8])))temp++;//return false; if(((a[6]==0&&mini==2)||(a[6]==1&&mini==1)||(a[6]==2&&mini==0)||(a[6]==3&&mini==3)))temp++;//return false; if(((a[7]==0&&abs(a[0]-a[6])>1)||(a[7]==1&&abs(a[0]-a[4])>1)||(a[7]==2&&abs(a[0]-a[1])>0)||(a[7]==3&&abs(a[0]-a[9])>1)))temp++; if((a[8]==0&&((a[0]==a[5])^(a[5]==a[4])))||(a[8]==1&&((a[0]==a[5])^(a[4]==a[9])))||(a[8]==2&&((a[0]==a[5])^(a[1]==a[4])))||(a[8]==3&&((a[0]==a[5])^(a[8]==a[4]))))temp++; if(((dei==1&&a[9]==3)||(dei==2&&a[9]==1)||(dei==3&&a[9]==0)||(dei==4&&a[9]==2)))temp++;//return false; if(temp==9)return true; else return false; } void dfs(int n){ if(n<10){ for(int i=0;i<4;i++){ a[n]=i; vis[i]++; dfs(n+1); vis[i]--; } } else if(judge()){ for(int i=0;i<10;i++){ cout<<(char)('A'+a[i])<<endl; } return; } else return; } int main(){ dfs(0); return 0; }

結果
這裡寫圖片描述

2.以下是人工推理
推了很久,,,,我表示我不會。。。。
以後想到再來更

相關推薦

ACM-搜尋 2018刑偵推理c++dfs回溯解答

對於這份試卷完全是臨時起意想寫著玩 有程式碼暴力和人工推理部分 1.以下是程式碼片段(暴力) #include<iostream> #include<cmath> using namespace std; int a[11]

AC Challenge [ ACM-ICPC 2018 南京賽區網路預賽 ] [dfs + 二進位制記憶化搜尋 ]

題意:有n個問題,做第i個問題得分是t*a[i]+bi, 但是做第i題之前還需要先做其他的一些題目….可以選擇不做完所有的題,問最後的最高得分. 思路:深搜就可以了,跟很多深搜的問題一樣,有很多重複的子問題,此題的記憶化很奇特用的二進位制類似狀壓的思想 AC co

ACM-ICPC 2018 瀋陽網路賽 C Convex Hull (莫比烏斯+容斥)

long long 爆的我心痛,現在編譯器都支援128位的了。。。 神奇,電腦編譯器都過不了(老了),交上去ac了,就是複雜度還有點高,應該不是正解,不過又get到了新知識, 不過也有的巨佬說是餘數太大的緣故,所以中間採用 int128 很菜,容斥推導那塊想了半天才

2018刑偵推理試題(C++)

def oid set 算法 mtime abs signed lock c++11 上學期看到2018年刑偵科推理試題,直覺告訴我可以嵌套N層for循環來解答,但後面還是用組合算法窮舉出所有組合算到答案,嵌套太深不好搞啊。 從 0b00000000000000000000

ZOJ 4060 - Flippy Sequence - [思維][2018 ACM-ICPC Asia Qingdao Regional Problem C]

arr sequence 選擇 class ots 部分 ac代碼 while flip 題目鏈接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4060 題意: 給出兩個 $0,1$ 字符

C++解2018刑偵推理卷(閒的DT系列)

刑偵推理卷的C++解答 本文程式碼除錯環境: VS2017 + Windows 7 不能執行的請注意C++的版本,至少C++ 11 問題描述 問題思路 用遞迴的話,一不小心就會Stack Overflow。 解答程式*(全)

C語言(遞迴法構造答案全集)2018刑偵推理試題

今年早些時候,這張圖片火遍了網路,當時就想著,這個題目用計算機來解,應該是很方便的。無奈當時工作忙,沒有時間弄。最近時間閒,就鼓搗了一下,花費幾個小時,成功執行得出答案。但上網一看,各路大神早就給出了N種解法。其中找到一篇和我一樣用暴力窮舉實現的。我的解法和他

ACM-ICPC 2018 南京賽區網絡預賽 - C GDY (模擬)

out esp rst iterator bit bool open print icpc 誒,比賽時差一點就debug出來了 #include<bits/stdc++.h> using namespace std; typedef long long LL;

ACM-ICPC 2018 南京賽區網絡預賽 做記錄

pre str pop 質因數 max fin con 過程 分層圖 比賽的時候被J題卡常然後B題自閉最後G題沒調完 5題gg 現在補題進度:6/12 A. 題解: 高考數學題,裂項完之後答案就是n!-1 (n!)%n=0,所以就是n-1 1 #include<b

ACM-ICPC 2018徐州網絡賽-H Ryuji doesn't want to study

als ryu using 網絡 nan spa upd div names C*M....死於update的一個long long寫成int了 心累 不想寫過程了 ******** 樹狀數組,一個平的一個斜著的,怎麽斜都行 題庫鏈接:https://nanti.ji

計蒜客 ACM-ICPC 2018 南京賽區網絡預賽 A. An Olympian Math Problem-數學公式

span anti data help NPU https sin %20 -o A. An Olympian Math Problem 54.28% 1000ms 65536K Alice, a student of grade 66

ACM-ICPC 2018 焦作賽區網絡預賽 H String and Times(SAM)

anti multi long long topo spa lse each adding 焦作 Now you have a string consists of uppercase letters, two integers AA and BB. We call a

ACM-ICPC 2018 焦作賽區網絡預賽 G Give Candies

sca possible rule brush popover %20 more ces 題解 There are NN children in kindergarten. Miss Li bought them NN candies. To make the proce

ACM-ICPC 2018 焦作賽區網絡預賽 B Mathematical Curse

\n fin tom ast val case mina tee pbo A prince of the Science Continent was imprisoned in a castle because of his contempt for mathematic

ACM-ICPC 2018 焦作賽區網絡預賽 K Transport Ship

and NPU sport ios pad stdio.h total 復制 ref There are NN different kinds of transport ships on the port. The i^{th}ith kind of ship can c

ACM-ICPC 2018 焦作賽區網絡預賽J Participate in E-sports

pos add -html nsis close stream tar one ger Jessie and Justin want to participate in e-sports. E-sports contain many games, but they don

ACM-ICPC 2018青島網絡賽-H

main names 開始 網絡 out pan syn str cin 把這題的每個點分成兩種情況看,如果是從這個點開始,0算作2,1算作1,如果是中間點或者是結束點,如果和前面的相同看作2,不相同看作1 #include <iostream> #in

ACM-ICPC 2018青島網絡賽-A Saving Tang Monk II

during node tin std arr syn heal line describe 做法:優先隊列 題目1 : Saving Tang Monk II 時間限制:1000ms 單點時限:1000ms 內存限制:256MB 描述

ACM-ICPC 2018 瀋陽賽區網路預賽 J. Ka Chang (分塊+樹狀陣列+dfs序)

題意 給你一顆樹,由兩種操作: 1.把這棵樹深度為 D D D的點全部都加上一個值。 2.求以p為根節點的子樹的權值和是多少? 思路 對於樹上的東西,我們可以把他求一下DFS序,之後就可以把樹上的結構變成

ACM-ICPC 2018 徐州賽區網路預賽 B. BE, GE or NE (記憶化搜尋)

題意 兩個人在玩遊戲,有一個初始的分數,每次輪流玩遊戲有三種操作,當前數字加上A,當前數字減去B,當前數字乘上-1,當最終分數>h 的時候就是good ending,小於l的時候就是bad ending ,其他的都是 Normal Ending。 思路 從第一次操作開始記憶化搜,