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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2012 Multi-University Training Contest 3

發(fā)布時間:2024/8/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2012 Multi-University Training Contest 3 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1001 ?hdu 4320 ?http://acm.hdu.edu.cn/showproblem.php?pid=4320

題意:

V寫下一個A進(jìn)制的任意有限小數(shù),如果S能將其翻譯成B進(jìn)制的有限小數(shù),則S贏,輸出Yes 否則V贏輸出No;

思路:

只要A的所有質(zhì)因子都包含在B中,S就能贏(證明沒看懂!!求指教)

這里注意:

(N表示A,B的極限值)

1:一個數(shù)i的質(zhì)因子,至多只會存在一個大于sqrt(i)的。所以這里我們只要枚舉出小于sqrt(N)的所有質(zhì)數(shù)即可,然后用所有小于sqrt(j)的質(zhì)數(shù)來查找j的質(zhì)因子,同時j也要做相應(yīng)的除法把枚舉道德質(zhì)因子除去,當(dāng)枚舉完所有小于sqrt(j)質(zhì)數(shù)時,j如果>1說明存在大于sqrt(j)的質(zhì)因子,這時的質(zhì)因子也就是j本身看了,所以要檢查一下B是否還包含這個質(zhì)因子,因?yàn)楫?dāng)存在大于sqrt(N)的質(zhì)數(shù)時,我們沒有枚舉出來,所以必須在后邊要算。

View Code #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #define maxn 1000007 #define ll __int64 using namespace std;int nop[maxn]; int res[maxn],len; //素?cái)?shù)篩選法選出素?cái)?shù) void SP() {len = 0;int i,j;memset(nop,0,sizeof(nop));nop[0] = nop[1] = 1;for (i = 2; i*i < maxn; ++i){if (!nop[i]){for (j = i*2; j < maxn; j += i){nop[j] = 1;}}}for (i = 2; i < maxn; ++i){if (!nop[i]){res[len++] = i;}} }int main() {//freopen("d.txt","r",stdin);int t,i;int cas = 1;ll a,b;SP();/*for (i = 0; i < 50; ++i) printf("%d ",res[i]);puts("");*/scanf("%d",&t);while (t--){scanf("%I64d%I64d",&a,&b);bool flag = false;//枚舉小于sqrt(a)的質(zhì)因子for (i = 0; res[i] <= sqrt(1.0*a); ++i){if (a%res[i] == 0)//屬于A的質(zhì)因子一定要屬于B {if (b%res[i] != 0){flag = true;break;}while (a%res[i] == 0)//a必須做相應(yīng)處理,為后邊出現(xiàn)大雨sqrt(a)的質(zhì)因子做準(zhǔn)備a /= res[i];}}if (b%a != 0) flag = true;//此時a可能是1,也可能是大與sqrt(a)的質(zhì)因子printf("Case #%d: ",cas++);if (!flag) printf("YES\n");else printf("NO\n");}return 0; }

?

還有一個解法:首先明確每一個大于1的整數(shù)都能分解成質(zhì)因數(shù)乘積的形式,還要要知道兩個數(shù)的最大公約數(shù)就是這兩個數(shù)的公共質(zhì)因子的乘積,所以我們只要不斷取他們的公共質(zhì)因子的乘積,直到a只剩下1時,說明a的所有質(zhì)因子都包含在b中,就是不斷地取a,b的最大公約數(shù),然后a再除去最大公約數(shù)。

View Code #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #define maxn 1000007 #define ll __int64 using namespace std;ll gcd(ll a,ll b) {if (b == 0) return a;return gcd(b,a%b);} int main() {//freopen("d.txt","r",stdin); ll a,b;int t;int cas = 1;scanf("%d",&t);while (t--){scanf("%I64d%I64d",&a,&b);printf("Case #%d: ",cas++);ll c = gcd(a,b);if (c == 1)//如果c為1說明不存在公共質(zhì)因子 {printf("NO\n");}else{while (c != 1){a/=c;//除去c = gcd(a,b);//再取 }if (a == 1) printf("YES\n");//公共質(zhì)因子都能取完else printf("NO\n");}}return 0; }

?

1004:hdu 4232?http://acm.hdu.edu.cn/showproblem.php?pid=4323

題意:

給出n個數(shù)字字符串,然后給出m個詢問,每個詢問包括一個數(shù)字字符串和一個最大值,要求在n個字符串里尋找與查詢字符串的字符串編輯距離小于最大值的字符串個數(shù)。

思路:

直接利用dp求查詢字符串與n個字符串的編輯距離,求解即可。

View Code #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #define maxn 1507 #define ll __int64 using namespace std;char num[maxn][13]; int d[13][13];bool solve(char *s1,char*s2,int mk) {int i,j;int len1 = strlen(s1);int len2 = strlen(s2);if (abs(len1 - len2) > mk) return false;/*才開始以為只要字符串長度相同他們不同的點(diǎn)個數(shù)大于mk標(biāo)記就返回false結(jié)果就wa了例如123324 雖然他們不同的點(diǎn)有三個,我們只要將4刪除,在3前加1即可用兩步操作實(shí)現(xiàn)*//*if (len1 == len2){int tmp = 0;for (i = 0; i < len1; ++i){if (s1[i] != s2[i]) tmp++;}if (tmp > mk) return false;}*///關(guān)鍵是dp求編輯距離memset(d,0,sizeof(d));d[0][0] = 0;for (i = 1; i <= len1; ++i) d[i][0] = i;for (i = 1; i <= len2; ++i) d[0][i] = i;for (i = 1; i <= len1; ++i){for (j = 1; j <= len2; ++j){d[i][j] = d[i - 1][j - 1] + (s1[i - 1] == s2[j - 1]?0:1);d[i][j] = min(d[i][j],d[i - 1][j] + 1);d[i][j] = min(d[i][j],d[i][j - 1] + 1);}}//printf("%d %d %s %s\n",d[len1][len2],mk,s1,s2);if (d[len1][len2] <= mk) return true;else return false; } int main() {//freopen("d.txt","r",stdin);int t,i,j,n,m;char str[13];int cas = 1,tmp;scanf("%d",&t);while (t--){printf("Case #%d:\n",cas++);scanf("%d%d",&n,&m);memset(num,0,sizeof(num));for (i = 0; i < n; ++i)scanf("%s",num[i]);for (i = 0; i < m; ++i){int ct = 0;scanf("%s%d",str,&tmp);for (j = 0; j < n; ++j){if (solve(str,num[j],tmp))ct++;}printf("%d\n",ct);}}return 0; }

?

1005: hdu 4324?http://acm.hdu.edu.cn/showproblem.php?pid=4324

題意:

給定n個人的愛情圖,如果a愛b那么b一定不愛a,而且題目保證任意兩點(diǎn)都存在一條邊(there is love between any of two people,?if A don’t love B, then B must love A)

關(guān)系矩陣map[i][j] = 1表示i愛j,那么j一定不愛i,讓你找出是否存在三角戀,即:A loves B, B loves C and C loves A.

思路:

按照官方解題報告的第二種方法做的,不是好理解;當(dāng)?shù)趇個點(diǎn)加入時,(0 --- i - 1)里面肯定有i喜歡的將他們分到左邊,那剩下的就是i不喜歡的了,也即喜歡i的了,(這里保證每條邊i都會和其他n-1條變有關(guān)系,要么喜歡要么不喜歡),對于每次枚舉i,我們在(0~i-1)的范圍看下有多少個i指向的點(diǎn)(剩下的就是指向i的點(diǎn)),同時算下i指向的點(diǎn)的出度和。就可以知道這些 i指向的點(diǎn) 指向 指向i的點(diǎn)(剩下的點(diǎn))的數(shù)目,如果?num * (num - 1) / 2 < sumout 那么就是被指向的點(diǎn)有指出去了,這樣就形成了3元環(huán)。?否則,剩下的就是更新下出度即可,繼續(xù)執(zhí)行下一個節(jié)點(diǎn)。

View Code #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #define maxn 2007using namespace std;char map[maxn][maxn]; int outd[maxn];int main() {//freopen("d.txt","r",stdin);int t,i,j,n;int cas = 1;scanf("%d",&t);while (t--){printf("Case #%d: ",cas++);scanf("%d",&n);for (i = 0; i < n; ++i)scanf("%s",map[i]);memset(outd,0,sizeof(outd));bool flag = false;for (i = 0; i < n; ++i){int num = 0,out = 0;for (j = 0; j < i; ++j)//枚舉出i指向的點(diǎn) {if (map[i][j] == '1'){out += outd[j];//記錄i指向的點(diǎn)的初讀num++;outd[i]++;//同時本身的初度累加 }}if ((num- 1)*num/2 < out)//比較 {flag = true;break;}//更新出度for (j = 0; j < i; ++j){if (map[j][i] == '1')outd[j]++;}}if (flag) printf("Yes\n");else printf("No\n");}return 0; }

1006 hdu 4325?http://acm.hdu.edu.cn/showproblem.php?pid=4325

題意:

給出每朵花的開花時間段[si,ti],存在又在同一時間段開花的,詢問每個時間點(diǎn)pi幾朵花在開放;

思路:

本來一道很簡單的線段數(shù)的成端更新+單點(diǎn)詢問+離散化的題目,可是我在離散化的時候只離散化了輸入的時間段的端點(diǎn),在詢問時就出了問題,跳了很長時間很是不對,后來把所有的點(diǎn)都離散化后建樹,做操作就簡單的跟屎似的了,沒有構(gòu)思好就看似是敲代碼。不行啊。。

View Code #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #define maxn 100007 using namespace std;int val[12*maxn],X[3*maxn]; int L[maxn],R[maxn],w[maxn]; int bsearch(int l,int r,int sc) {while (l <= r){int m = (l + r)>>1;if (sc == X[m]) return m;else if (sc < X[m]) r = m - 1;else l = m + 1;}return l; } void pushdown(int rt) {if (val[rt]){val[rt<<1] += val[rt];val[rt<<1|1] += val[rt];val[rt] = 0;} } void update(int L,int R,int sc,int l,int r,int rt) {if (l >= L && r <= R){val[rt] += sc;return;}pushdown(rt);int m = (l + r)>>1;if (L <= m) update(L,R,sc,l,m,rt<<1);if (R > m) update(L,R,sc,m + 1,r,rt<<1|1); } int query(int pos,int l,int r,int rt) {if (l == r){return val[rt];}pushdown(rt);int res = 0;int m = (l + r)>>1;if (pos <= m) res = query(pos,l,m,rt<<1);else res = query(pos,m + 1,r,rt<<1|1);return res; } int main() {int t,i;int n,q;int cas = 1;scanf("%d",&t);while (t--){printf("Case #%d:\n",cas++);scanf("%d%d",&n,&q);int mm = 0;for (i = 0; i < n; ++i){scanf("%d%d",&L[i],&R[i]);X[++mm] = L[i];X[++mm] = R[i];}for (i = 0; i < q; ++i){scanf("%d",&w[i]);X[++mm] = w[i];}sort(X + 1,X + 1 + mm);int m = 1;for (i = 2; i <= mm; ++i){if (X[i] != X[i - 1]) X[++m] = X[i];}memset(val,0,sizeof(val));for (i = 0; i < n; ++i){int l = bsearch(1,m,L[i]);int r = bsearch(1,m,R[i]);update(l,r,1,1,m,1);}for (i = 0; i < q; ++i){int pos = bsearch(1,m,w[i]);printf("%d\n",query(pos,1,m,1));}}return 0; }

?

?

?

官方解題報告:http://page.renren.com/601081183/note/863771603?ref=minifeed&sfet=2012&fin=0&ff_id=601081183&feed=page_blog&tagid=863771603&statID=page_601081183_2&level=1

轉(zhuǎn)載于:https://www.cnblogs.com/E-star/archive/2012/08/01/2619066.html

總結(jié)

以上是生活随笔為你收集整理的2012 Multi-University Training Contest 3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 特黄视频免费看 | 人人干天天操 | 国产视频四区 | 黄色永久视频 | 日韩天堂| 双性皇帝高h喷汁呻吟 | 四季av国产一区二区三区 | 亚洲免费在线观看 | 亚洲a视频在线观看 | 国产免费黄色av | 国产网红主播精品av | jizz毛片 | 亚洲一区二区精品 | 欧美区一区 | 交视频在线播放 | 亚洲精华液一区二区 | www.天天操.com | 青青草五月天 | 999久久久| 国精产品一区二区三区 | 国产精品高潮呻吟久久av野狼 | 中文字幕久久熟女蜜桃 | 一级欧美在线 | 色妞ww精品视频7777 | 日韩精品一区二区三区电影 | 黄色片网站免费观看 | 中文字幕不卡在线 | 欧美一区二区不卡视频 | 欧美日韩激情网 | 国产精品一色哟哟哟 | 99久久综合国产精品二区 | 夜色成人网 | 日韩福利视频一区 | 爱久久| 日本一区二区三区精品 | 国产成人三级在线 | 黄色av电影网址 | 精品一区中文字幕 | 国内黄色片 | 亚洲国产精品视频 | 国产日韩在线视频 | 视频网站在线观看18 | 向日葵视频在线 | 澳门av网站| 人人妻人人藻人人爽欧美一区 | 91精品国产入口 | 日本黄色小网站 | 18男女无套免费视频 | 国产九色av | 欧美一区二区三区久久妖精 | 亚洲人成电影在线播放 | 亚洲欧美日韩成人在线 | 亚洲男人天堂影院 | 久久久久久久久久久网 | 国产成人综合av | 动漫美女被艹 | 中文字幕精品久久 | 亚洲AV无码精品一区二区三区 | 国产一区黄色 | 五月深爱婷婷 | 中文日韩在线观看 | 国产精品一区网站 | 亚洲激情一区 | 亚洲天堂国产 | 国产五月天婷婷 | 成人午夜视频免费观看 | 欧美激情免费观看 | 国产在线自 | 性做久久久久久 | 95在线视频 | 原创真实夫妻啪啪av | 色噜噜在线 | 久久在线免费 | 夜夜综合网 | 光棍影院av| 猛1被调教成公厕尿便失禁网站 | 亚洲ⅴ国产v天堂a无码二区 | 92久久| av动漫免费观看 | 激情视频网站在线观看 | 裸体视频软件 | 久久av综合 | 成人h动漫精品一区 | 欧美另类极品videosbest使用方法 | 日韩一页 | 与子敌伦刺激对白播放的优点 | 欧美影视 | 麻豆视频入口 | 一级黄色视屏 | 波多野结衣理论片 | 国产一级精品毛片 | 久久思 | 轮乱| 国产在线不卡av | 国产又粗又猛视频免费 | 91超薄肉色丝袜交足高跟凉鞋 | 国产婷婷色一区二区在线观看 | 中文字幕在线观看一区二区 | 久久久久久久久久免费视频 |