題意簡述:密碼序列是由一系列大寫字母組成,在解密序列不唯一的情況下,按字典序輸出最後 乙個。其中,target是數字,v,w,x,y,z屬於同乙個集合且各不相同,該集合由題目給出,由26個大寫字母中的任意5-12個組成。
思路:這是一道典型的列舉題。題目中,解的值域已經確定,解元素中的v,w,x,y,z都是題目給定集合的乙個元素。儘管列舉法的演算法複雜度是指數級的,但鑑於給定集合最多有12個元素,完全可以直接用列舉。另外,題目中的約束條件,v,w,x,y,z各不相同,明顯不屬於解集的元素可以很容易的通過判斷來排除。需要注意的是,題目求的密碼序列是按字典序輸出最後乙個,所以要事先將集合元素排好序
#include
#include
#include
#include
#include
using
namespace
std;
char letter[15];
int target,value[15];
void process(int len)//計算過程列舉
printf("no solution\n");
} bool compare(int a,int b)//降序排列
int main()
sort(value,value + i,compare);//題意要求按照字典序輸出最後乙個,就是字典序的倒序輸出第乙個
process(i);}}
ZOJ 3710 friends 暴力 列舉 水
題意 有n個人 m對關係 如果兩個人之間有不少於k個好友的話就會成為朋友 問 長此以往會有多少對新關係形成 思路 一直暴力到沒有新關係為止 include include include include using namespace std const int maxn 100 1 bool g ...
zoj 動態規劃幾題(簡單)
1092 floyd 拼的對麼。就是算環的最大長度能否到1啦 include include include include using namespace std char a 1000 100 double b 100 100 char q 100 w 100 int m int qqq if ...
ZOJ 1101 Gamblers 簡單搜尋
題目意思 求滿足a b c d的最大a。下面給出的解法時間複雜度為n 3log n 即先排序,查詢d a b c時用二分法。其實還有一種n 2log n 的解法,即先求出所有可能的b c,再對其排序,最後二分查詢a d是否在其中。include include include using names...