題目鏈結:
題目大意:給出了一張加法表,表中的字母代表數字。給出乙個方案,包含是k進製,每個字母所代表的數字。
題目分析:首先我們明確幾個問題。
1.本題加法表的第一行和第一列都是乙個字母,而且各不相同,那麼很明顯進製至少為n-1進製,因為有n-1個字母。
2.因為兩個一位數字相加最多會有兩位,而且最高位最多為1。
3.因為這n-1個一位數字相加如果不進製,那麼一定會有新的數字出現。顯然題目不允許。所以一定會有兩位數出現,而且最高位只能是1。
4.既然有代表1的字母出現,那麼1+1=2。1+2=3。1+3=4······依次所有的數字都會出現。那麼這就只能是n-1進製的加法運算了。而且一定所有字母代表的是0~n-1的所有數。
解題過程:明白了這些之後,我們又建立在n<=9的情況下,直接dfs所有的情況判斷是否合法即可。
正解**:
#include #include #include #include #include #include using namespace std;
typedef long long ll;
mapmp;
ll n,len[20][20];
char biao[20][20][20];
bool vis[20];
ll num[20];
bool check()
} dfs(1);
printf("error!");
return 0;
}
NOIP 2000 進製轉換 解題報告
我也不知道為什麼,負數的進製就是這麼寫的,反正記住就是,如果餘數是負數,那就加上base,然後再用n 新餘數 再除以base。如下 include include define max 10000 int ans max int start const char str 0123456789abcd...
原 POJ 3748 位操作 解題報告
方法 給定16進製制32bit數,將其第x位置0,第y位開始的三位置成110 注意考慮待置位數中有a f的情況 description 假設你工作在乙個32位的機器上,你需要將某乙個外設暫存器的第x位設定成0 最低位為第0位,最高位為第31位 將第y位開始的連續三位設定成110 從高位到低位的順序 ...
Block Voting 解題報告
這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...