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

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

Codeforces 100726A 或 POJ 3842

2019-11-10 18:07:16
字體:
來源:轉載
供稿:網友

題目鏈接:http://poj.org/PRoblem?id=3842

題意: 給你至多7個數字,問這些數字最多能組成多少個質數。

題解: gym里的題目都挺好的(個別除外),這道題即是。 首先我們不妨預處理一個prime[]數組,prime[i]反映第i個數是否為質數。 然后對這些數字排序……排序完了以后枚舉排列…… 然后就過了…… 代碼:

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int size = 10000000;typedef long long LL;bool pm[size];void update() { for ( int i = 0; i < size; i ++ ) pm[i] = 1; pm[0] = pm[1] = 0; for ( LL i = 2; i < size; i ++ ) { if(pm[i] == 1) { for( LL j = i*i; j < size; j += i) pm[j] = false; } }}bool vis[size];char str[15];int ntr[15], re[size];int main() { update(); memset(vis, 0, sizeof(vis)); int tst; scanf("%d", &tst); while( tst -- ) { scanf("%s", str); int len = strlen(str); for ( int i = 0; i < len; i ++ ) ntr[i] = str[i]-'0'; int ans = 0, curs = 0; sort(ntr, ntr+len); do { int sum = 0; for ( int i = 0; i < len; i ++ ) { sum = sum*10+ntr[i]; if(vis[sum] == 0 && pm[sum] == 1) { ans ++; vis[sum] = -1; re[curs ++] = sum; } } } while(next_permutation(ntr, ntr+len)); printf("%d/n", ans); for ( int i = 0; i < curs; i ++ ) vis[re[i]] = 0; } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海口市| 澄城县| 石景山区| 太仆寺旗| 阳西县| 乐平市| 治县。| 汶川县| 木里| 军事| 临沂市| 湘阴县| 都江堰市| 巴马| 长治县| 富川| 潜山县| 宁河县| 格尔木市| 姚安县| 丰镇市| 惠水县| 双鸭山市| 巨鹿县| 清水县| 苗栗市| 泗阳县| 泰安市| 红原县| 贡觉县| 丹江口市| 新乡县| 滨州市| 鄂伦春自治旗| 陈巴尔虎旗| 宾川县| 隆德县| 拜泉县| 淮阳县| 长葛市| 台安县|