日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【每日一题】8月28日题目精讲 编号

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【每日一题】8月28日题目精讲 编号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【每日一題】8月28日題目精講 編號
鏈接:https://ac.nowcoder.com/acm/problem/19925
來源:??途W

題目描述

你需要給一批商品編號,其中每個編號都是一個7位16進制數(由0~9,
a-f組成)。為了防止在人工處理時不小心把編號弄錯,要求任意兩個編號至少有三個位置對應的數字不相同。第一個編號為0000000,第二個編號為不違反上述規定的前提下最小的編號,…,每次分配一個新編號時,總是選擇不和前面編號沖突的最小編號(注意編號都是16進制數,可以比較大小)。
按此規律,前面若干編號分別是:0000000, 0000111, 0000222, …, 0000fff, 0001012,
0001103,0001230,0001321,0001456,… 輸入k,你的任務是求出第k小的編號。

輸入描述:
第一行為整數k。
輸出描述:
輸出第k小的編號(字母必須輸出小寫)。輸入保證這個編號存在。
示例1
輸入
復制

20

輸出
復制

0001321

備注:
對于30%的數據,k≤200;
對于70%的數據,k≤10000;
對于100%的數據,k≤200000。

題解:

暴力出奇跡。。。
題目要求至少有三個位置對應的數字不相同
一個七個數,所以存五個數的信息就行,因為如果五個數一樣那肯定不符合要求
七個選五個一共是21種方案
dp[i][a][b][c][d][e]表示第i個位置,5個位置的數是a,b,c,d,e
如果一個數可行也就是21種位置上的數都沒被排除

代碼:

#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; #define MAXN 10 #define for10(x) for (x=0;x<16;(x)++)int a[30][16][16][16][16][16]; int main() {/freopen("loop05.in","r",stdin);//freopen("loop05.out","w",stdout);int a1,a2,a3,a4,a5,a6,a7,k,s=0;cin>>k;for10(a1)for10(a2)for10(a3)for10(a4)for10(a5)for10(a6)for10(a7) {if(!a[0][a3][a4][a5][a6][a7]&&!a[1][a2][a4][a5][a6][a7]&&!a[2][a2][a3][a5][a6][a7]&&!a[3][a2][a3][a4][a6][a7]&&!a[4][a2][a3][a4][a5][a7]&&!a[5][a2][a3][a4][a5][a6]&&!a[6][a1][a4][a5][a6][a7]&&!a[7][a1][a3][a5][a6][a7]&&!a[8][a1][a3][a4][a6][a7]&&!a[9][a1][a3][a4][a5][a7]&&!a[10][a1][a3][a4][a5][a6]&&!a[11][a1][a2][a5][a6][a7]&&!a[12][a1][a2][a4][a6][a7]&&!a[13][a1][a2][a4][a5][a7]&&!a[14][a1][a2][a4][a5][a6]&&!a[15][a1][a2][a3][a6][a7]&&!a[16][a1][a2][a3][a5][a7]&&!a[17][a1][a2][a3][a5][a6]&&!a[18][a1][a2][a3][a4][a7]&&!a[19][a1][a2][a3][a4][a6]&&!a[20][a1][a2][a3][a4][a5]) {k--;if(!k) {printf("%x%x%x%x%x%x%x\n",a1,a2,a3,a4,a5,a6,a7);return 0;}a[0][a3][a4][a5][a6][a7]=true;a[1][a2][a4][a5][a6][a7]=true;a[2][a2][a3][a5][a6][a7]=true;a[3][a2][a3][a4][a6][a7]=true;a[4][a2][a3][a4][a5][a7]=true;a[5][a2][a3][a4][a5][a6]=true;a[6][a1][a4][a5][a6][a7]=true;a[7][a1][a3][a5][a6][a7]=true;a[8][a1][a3][a4][a6][a7]=true;a[9][a1][a3][a4][a5][a7]=true;a[10][a1][a3][a4][a5][a6]=true;a[11][a1][a2][a5][a6][a7]=true;a[12][a1][a2][a4][a6][a7]=true;a[13][a1][a2][a4][a5][a7]=true;a[14][a1][a2][a4][a5][a6]=true;a[15][a1][a2][a3][a6][a7]=true;a[16][a1][a2][a3][a5][a7]=true;a[17][a1][a2][a3][a5][a6]=true;a[18][a1][a2][a3][a4][a7]=true;a[19][a1][a2][a3][a4][a6]=true;a[20][a1][a2][a3][a4][a5]=true;}}return 0; }

總結

以上是生活随笔為你收集整理的【每日一题】8月28日题目精讲 编号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。