生活随笔
收集整理的這篇文章主要介紹了
第四届“传智杯”全国大学生IT技能大赛(练习赛)【完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目都是基礎題。
目錄
- T1 符合條件的數【暴力】
- T2 選代表【模擬】
- T3 成績統計 【排序】
- T4 背答案 【模擬】
- T5 擊鼓傳花 【暴力模擬】
T1 符合條件的數【暴力】
https://www.luogu.com.cn/problem/T211364?contestId=56279
暴力即可。
#include<bits/stdc++.h>
using namespace std
;
int n
,k
;
bool check(int n
)
{int cnt
=0;while(n
) {if(n
%10==3) cnt
++;n
/=10;}return cnt
==k
;
}
int main(void)
{cin
>>n
>>k
;for(int i
=n
;;i
++){if(check(i
)) {cout
<<i
;break;}}return 0;
}
T2 選代表【模擬】
https://www.luogu.com.cn/problem/T211368?contestId=56279
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
int cnt
[N
],n
,x
;
int main(void)
{cin
>>n
;for(int i
=0;i
<n
;i
++){cin
>>x
;if(!cnt
[x
]) cout
<<x
<<" ";cnt
[x
]++;}return 0;
}
T3 成績統計 【排序】
https://www.luogu.com.cn/problem/T211372?contestId=56279
注意向上取整,注意四舍五入即可。
#include<bits/stdc++.h>
using namespace std
;
struct node
{string name
;int id
,a
,b
;int sum
;
}temp
;
vector
<node
>ve
;
int n
;
bool cmp(node a
,node b
)
{if(a
.sum
==b
.sum
)return a
.id
<b
.id
;return a
.sum
>b
.sum
;
}
int main(void)
{cin
>>n
;for(int i
=0;i
<n
;i
++){cin
>>temp
.name
>>temp
.a
>>temp
.b
;temp
.id
=i
;temp
.b
=ceil(sqrt(1.0*temp
.b
)*10);temp
.sum
=0.6*temp
.b
+0.4*temp
.a
+0.5;ve
.push_back(temp
); }sort(ve
.begin(),ve
.end(),cmp
);for(int i
=0;i
<ve
.size();i
++) {cout
<<ve
[i
].name
<<" "<<ve
[i
].sum
;if(i
!=ve
.size()-1) cout
<<endl
;}return 0;
}
T4 背答案 【模擬】
https://www.luogu.com.cn/problem/T211939?contestId=56279
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
unordered_map
<string
,int>mp
;
string a
[N
],b
[N
];
int n
,m
;
int main(void)
{cin
>>n
>>m
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
]>>b
[i
],mp
[a
[i
]]=i
;for(int i
=0;i
<m
;i
++){string name
,temp
; cin
>>name
;int ans
=0;for(int j
=0;j
<4;j
++){cin
>>temp
;if(temp
==b
[mp
[name
]]) ans
=j
;}cout
<<char('A'+ans
)<<endl
;}return 0;
}
T5 擊鼓傳花 【暴力模擬】
https://www.luogu.com.cn/problem/T211943?contestId=56279
暴力模擬,注意剪枝即可。
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e6+10;
int st
[N
],n
,m
,k
;
int main(void)
{cin
>>n
>>m
>>k
;for(int i
=0;i
<m
;i
++){int x
; cin
>>x
;while(!st
[x
]){st
[x
]=1;x
=(x
+k
)%n
;}}int cnt
=0;for(int i
=0;i
<n
;i
++) if(!st
[i
]) cnt
++;cout
<<cnt
<<endl
;return 0;
}
#include <bits/stdc++.h>
using namespace std
;
int n
,m
,k
;
int gcd(int a
,int b
) {return b
?gcd(b
,a
%b
):a
;}
int main()
{cin
>>n
>>m
>>k
;int l
=gcd(n
,k
);vector
<bool>v(l
,true);for(int i
=0;i
<m
;i
++){int j
;cin
>>j
;v
[j
%l
]=false;}cout
<<(count(v
.begin(),v
.end(),true))*(n
/l
);
}
總結
以上是生活随笔為你收集整理的第四届“传智杯”全国大学生IT技能大赛(练习赛)【完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。