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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

第四届“传智杯”全国大学生IT技能大赛(初赛AB组题解)

發(fā)布時(shí)間:2024/8/1 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四届“传智杯”全国大学生IT技能大赛(初赛AB组题解) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目

    • A 組原成績(jī)
    • B 報(bào)告賦分
    • C 競(jìng)爭(zhēng)得分
    • D 小卡與質(zhì)數(shù)2
      • 方法一
      • 方法二
      • 方法三
    • E 蘿卜數(shù)據(jù)庫(kù)
    • F 小卡與落葉
    • G 小卡和質(zhì)數(shù)


A 組原成績(jī)

簡(jiǎn)單

#include<stdio.h> int main() {int h,e,t;scanf("%d%d%d",&t,&h,&e);int w = t * 0.2 + h *0.3 + e * 0.5;printf("%d",w);return 0; }

B 報(bào)告賦分

簡(jiǎn)單

#include<stdio.h> int main() {int t,a,p;scanf("%d",&t);while(t --) {scanf("%d%d",&a,&p);if( p < 16) a -= 10;if( p > 20) a -= p - 20; if( a < 0) a = 0;printf("%d\n",a);}return 0; }

C 競(jìng)爭(zhēng)得分

簡(jiǎn)單,先找出最大值和最小值。

#include<stdio.h> int a[1005]; int main() {int n, maxn = -1, minn = 1005;scanf("%d",&n);for(int i = 0; i < n; i ++) {scanf("%d",&a[i]);if(a[i] > maxn) maxn = a[i];if(a[i] < minn) minn = a[i];}int t = maxn - minn;for(int i = 0; i < n; i ++) {int k = 100 * (a[i] - minn) / t;printf("%d ",k);}return 0; }

注:這題不嚴(yán)謹(jǐn),最大值和最小值可能相等,那么最大值 - 最小值不能做被除數(shù)。

D 小卡與質(zhì)數(shù)2

題目描述:小卡最近迷上了質(zhì)數(shù),所以他想把任何一個(gè)數(shù)都轉(zhuǎn)化為質(zhì)數(shù)!
小卡有 T 次詢問(wèn),每次給你一個(gè)數(shù)字 x,問(wèn)有多少個(gè)比 x 小的非負(fù)整數(shù) y,使得 x⊕y 是質(zhì)數(shù),其中 ⊕ 表示按位異或。

輸入格式:第一行一個(gè)正整數(shù) T (1 ≤ T ≤ 10^5 ),表示有 T 組詢問(wèn)。
接下來(lái) T 行,每行一個(gè)正整數(shù) x (1 ≤ x ≤10 ^ 6 )。
輸出格式:對(duì)于每組詢問(wèn),輸出一行一個(gè)整數(shù),表示答案。

輸入樣例:

9 5 6 7 8 9 10 100 1000 10000

輸出樣例:

2 4 4 2 2 4 22 163 1132

注:這題理解方法二即可。
這三種方法都涉及埃氏篩,是素?cái)?shù)的一種篩法,復(fù)雜度是O(nloglogn)
不懂篩法和位運(yùn)算的看:素?cái)?shù)、位運(yùn)算
總結(jié):遇到異或從二進(jìn)制層面思考。

方法一

注:錯(cuò)的,但我不知道錯(cuò)哪,可以再優(yōu)化一下,可能會(huì)超時(shí)。
題解:因?yàn)?x ^ y = z 等價(jià)于 x ^ z = y ,那可以用質(zhì)數(shù)進(jìn)行比較,優(yōu)化暴力解法。但我不知道哪錯(cuò)了。

#include<bits/stdc++.h> using namespace std; const int N = 1 << 20; int prime[N], a[N], t; void isprime() {int n = N - 1; prime[0] = prime[1] = 1;for(int i = 2; i <= n; i ++) {if(prime[i]) continue;a[t++] = i;for(int j = i; j <= n/i; j ++) prime[i*j] = 1; } } int main() {isprime();int T;scanf("%d",&T);while(T--) {int x, ans = 0;scanf("%d",&x);for(int i = 0; i < t ; i ++) {if( (a[i] ^ x) < x) ans ++;}printf("%d\n",ans);}return 0; }

方法二

注:方法二、方法三參考:https://www.cnblogs.com/Silymtics/p/test-chuanzhibei4th.html

#include<bits/stdc++.h> using namespace std; const int N = 1 << 20; int prime[N], a[N], t; //prime[]判斷素?cái)?shù),a[]存儲(chǔ)素?cái)?shù) int p[25]; void isprime() {int n = N - 1; prime[0] = prime[1] = 1;for(int i = 2; i <= n; i ++) {if(prime[i]) continue;a[t++] = i;for(int j = i; j <= n/i; j ++) prime[i*j] = 1; } } int main() {isprime();for(int i = 0; i < t; i ++) {int k = 0;for(int j = 22; j >= 0 ; j --) {if( (a[i] >> j) & 1) {k = j ; break;}}p[k]++;}int T;scanf("%d",&T);while(T--) {int x, ans = 0;scanf("%d",&x);for(int i = 0; i < 22 ; i ++) {if( (x >> i) & 1 ) ans += p[i];}printf("%d\n",ans);}return 0; }

方法三

異或字典樹(shù)

#include<bits/stdc++.h> using namespace std; const int N = 1 << 20; int prime[N], a[N], t; void isprime() {int n = N - 1; prime[0] = prime[1] = 1;for(int i = 2; i <= n; i ++) {if(prime[i]) continue;a[t++] = i;for(int j = i; j <= n/i; j ++) prime[i*j] = 1; } } int son[N][2],ne[N],idx; void insert(int x) {int u = 0;ne[0] ++;for(int i = 21; i >= 0; i --) {int p = (x >> i) & 1;if(!son[u][p]) son[u][p] = ++idx;u = son[u][p];ne[u] ++;} } int search(int x) {int u = 0, ans = 0;for(int i = 21; i >= 0; i --) {int p = (x>>i) & 1;if(p) {ans += ne[son[u][p]];u = son[u][p^1];} else u = son[u][p];if(!u) return ans;}return ans; } int main() {isprime();for(int i = 0; i < t; i ++) {insert(a[i]);}int T;scanf("%d",&T);while(T--) {int x, ans = 0;scanf("%d",&x);ans = search(x);printf("%d\n",ans);}return 0; }

E 蘿卜數(shù)據(jù)庫(kù)

題解:開(kāi)一個(gè)二維數(shù)組存儲(chǔ)變量,這題比較簡(jiǎn)單,暴力即可。
用 vector 可變長(zhǎng)數(shù)組更簡(jiǎn)單。

#include<stdio.h> const int N = 1e3+10; int a[N][N],b[N];//b[i]存儲(chǔ)a[i]長(zhǎng)度 int main() {int t, k ;scanf("%d%d",&t,&k);while(t--) {int n, x, y, op, ans = 0;scanf("%d%d",&op,&n);if(op == 1) {for(int i = 0; i < n ; i ++) {scanf("%d%d",&x,&y);a[x][b[x] ++] = y;}}else {scanf("%d%d",&x,&y);for(int j = 0;j < b[n]; j ++) {if(a[n][j] >= x && a[n][j] <= y) ans++;}printf("%d\n",ans);}} return 0; }

F 小卡與落葉

這題我不確定答案正確性。
記憶化搜索
題解:鄰接表存儲(chǔ)樹(shù),bfs 搜索更新 k[i] 的狀態(tài),記憶化搜索優(yōu)化。

#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; vector<int> a[N]; //鄰接表 int b[N], k[N]; //b[]判斷該結(jié)點(diǎn)是否被變黃,k[]判斷該結(jié)點(diǎn)的子樹(shù)有多少個(gè)黃葉 int x, y; int dfs(int step,int t) {if(b[step]) return 0;if(t >= y) b[step] = 1; int ans = b[step];for(int i = 0; i < a[step].size(); i ++) {ans += dfs(a[step][i],t+1);}k[step] += ans ;return ans ; } int main() {int n,m;scanf("%d%d",&n,&m);for(int i = 0; i < n - 1; i ++) {scanf("%d%d",&x,&y);a[x].push_back(y);}while(m--) {scanf("%d%d",&x,&y);if(x==1) dfs(1,1);else printf("%d\n",k[y]); }return 0; }

G 小卡和質(zhì)數(shù)

思維題。
題解:x ^ y = 1 可的 | x - y | = 1,可得 x,y 一奇一偶,結(jié)合 x, y 是質(zhì)數(shù)且只有 2 才是唯一的偶數(shù)質(zhì)數(shù)可得:2 ^ 3 = 1 是唯一解。

#include<stdio.h> int main() {int t;scanf("%d",&t);while(t--) {int x, y;scanf("%d%d",&x,&y);if( x == 1 && y == 2) printf("Yes\n");else if( x == 2 && y == 1) printf("Yes\n");else printf("No\n");} return 0; }

總結(jié)

以上是生活随笔為你收集整理的第四届“传智杯”全国大学生IT技能大赛(初赛AB组题解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 久久久久人妻一区 | 欧美日韩一卡 | 欧美中文一区 | 男生和女生一起差差差很痛的视频 | 久久久久久久久蜜桃 | 日本欧美久久久久免费播放网 | 亚州国产精品视频 | 黄色三级视频在线观看 | 国偷自产av一区二区三区麻豆 | 思思99re| 亚洲黄色片在线观看 | 可以在线观看的av网站 | 一级黄色片一级黄色片 | 国产视频一区二区三区在线 | 一本大道综合伊人精品热热 | 亚洲视频黄 | 欧美一级视频免费 | 成人无码av片在线观看 | 亚洲精品一卡 | 打屁屁日本xxxxx变态 | 特黄aaaaaaaaa毛片免费视频 | 国产一区二区在线免费观看视频 | 中文字幕日本一区 | 日本中文字幕免费 | 日韩国产一区二区三区 | 夜夜躁狠狠躁日日躁 | 午夜精品久久久久久久96蜜桃 | 91高跟黑色丝袜呻吟在线观看 | 美日韩av在线 | 国产激情在线播放 | 欧美亚洲国产一区二区三区 | 人人妻人人澡人人爽精品欧美一区 | 中文字幕日本在线观看 | 国产aaa级片 | 国产又粗又大又黄 | 亚洲深夜福利 | 欧美日韩亚洲高清 | wwwxxx日本人| 91porny九色91啦中文 | 欧洲黄色片 | 特级西西444www大精品视频 | 国产婷婷精品 | 久久久久久久久久久久久久av | 逼逼av网站 | 国产精品蜜臀av | av永久免费网站 | 日本高清视频一区二区三区 | 亚洲第一成人网站 | 国产美女免费观看 | 玖玖玖精品 | 少妇熟女一区二区三区 | 午夜视频在线观看网站 | 国产一区二区三区小说 | 99久久精品久久久久久清纯 | 国产一区a| 天堂网在线视频 | 国产一级二级视频 | 清纯粉嫩极品夜夜嗨av | 日韩精品一区二区av | 99自拍偷拍| av中文字幕在线播放 | 国产成人精品一区二区三区无码熬 | 中文字幕一区二区人妻电影丶 | 日韩欧美成人网 | 国产精品www在线观看 | 日本在线观看a | 亚洲国产成人精品一区二区三区 | 少妇第一次交换又紧又爽 | 午夜a区 | 久久久精品国产sm调教网站 | 6080成人| 德国经典free性复古xxxx | 激情五月婷婷色 | 国产黄色网址在线观看 | 日韩午夜伦| www.chengren| 樱花影院最新免费观看攻略 | 91久久精品夜夜躁日日躁欧美 | 四虎成人精品永久免费av九九 | 一区二区视频在线观看免费 | 狠狠狠| 男人操女人的网站 | 日韩欧美中文一区 | 久久久国产视频 | 亚洲精品第一页 | 精品免费国产一区二区三区四区 | 91视频在线免费观看 | jizz在线观看 | 成人黄色大片在线观看 | 国产999精品久久久久久 | 国产l精品国产亚洲区久久 午夜青青草 | 香蕉视频官方网站 | 久久久久综合 | 亚洲日本精品视频 | 国产口爆吞精一区二区 | 天天干天天天天 | 误杀1电影免费观看高清完整版 | 少妇真实被内射视频三四区 | 全球av在线 |