国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Prime Cryptarithm

2019-11-06 06:33:49
字體:
來源:轉載
供稿:網友

題目


這題本來是道水到不行的暴力題,然而這樣做復雜度大。可以用哈希搞一個 O(1) 的算法,可以達到全部測試點 0ms 的效果。

思路:開一個bool型的hash數組,先用進制枚舉法(N進制)位所有的可用數字標為true,再枚舉所有情況。


代碼:

/*ID:zhangch33LANG:C++TASK:crypt1*/#include<iostream>#include<cstdio>using namespace std;bool hash[10000];int num[10];int N;int mypow(int x,int y){ int res=1; while(y--) res*=x; return res;}inline void initHash(){ int i,j,k; for(k=2;k<=4;k++) for(i=0;i<=10000;i++) { int res=0,x=i; for(j=1;j<=mypow(10,k-1);j*=10) res+=num[x%N]*j,x/=N; hash[res]=true; }}int main(){ freopen("crypt1.in","r",stdin); freopen("crypt1.out","w",stdout); int i,j; scanf("%d",&N); for(i=0;i<N;i++) scanf("%d",&num[i]); /// initHash(); /// int a,b; int ans=0; for(a=100;a<=999;a++) { if(!hash[a]) continue; for(b=10;b<=99;b++) { if(!hash[b]) continue; int c=a*(b%10),d=a*(b/10),e=a*b; if(c>999||c<99) continue; if(!hash[c]) continue; if(d>999||d<99) continue; if(!hash[d]) continue; if(e>9999||e<999) continue; if(!hash[e]) continue; ans++; } }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江永县| 年辖:市辖区| 沂水县| 长丰县| 丹东市| 萨迦县| 库车县| 湟源县| 夏河县| 什邡市| 义马市| 库尔勒市| 马公市| 西畴县| 南岸区| 乌鲁木齐县| 三门县| 临高县| 昭通市| 昌都县| 禄丰县| 平和县| 铁力市| 商都县| 黄龙县| 普格县| 望江县| 延庆县| 新竹县| 漳平市| 南阳市| 麻城市| 定州市| 木兰县| 栾川县| 安乡县| 集贤县| 团风县| 新巴尔虎右旗| 广灵县| 揭西县|