ACM 寒假第一讲:C++ 基础

c++基础知识
1.时间复杂度
2.STL: 常用的STL容器: pair stack queue priority_queue vector deque list set map string
学习起来记不住那么多,得刷题,还未用到,基本可以理解,解题不熟,得用c语言,c++有待提高
题解
1.long loong
思路:对字符o循环while(n--)或for循环

include

using namespace std;
int main() {
int N=0;
cin>>N;
cout<<"L";
for(int i=0;i<N;i++){
cout<<"o";
}
cout<<"ng";
return 0;
}
2.YES or YES?
思路:讲字符全变为大写,比较YES,判断是否

include

using namespace std;

include

include<string.h>

int main () {
int t;
cin>>t;
char s[4];
for(int i=0;i<t;i++){
cin>>s;
for(int j=0;i<=3;j++){
s[j]=toupper(s[j]);
}
if(s=="YES"){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}
3.Even? Odd?
思路:遍历判断读入字符串的最后一位判断奇偶性

include

using namespace std;

include

int main(){
string s;
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>s;
int tag{s.back()-'0'};
if(tag%2)
cout<<"odd"<<endl;
else
cout<<"even"<<endl;
}
return 0;
}
4.Problem Generator
思路:记A-G出现次数,补缺的个数

include <stdio.h>

include <string.h>

int main() {
int t;
scanf("%d", &t);
while (t--) {
int n, m;
scanf("%d %d", &n, &m);
char a[51];
scanf("%s", a);
int count[7] = {0};
for (int i = 0; i < n; i++) {
count[a[i] - 'A']++;
}
int missing = 0;
for (int i = 0; i < 7; i++) {
if (count[i] < m) {
missing += m - count[i];
}
}
printf("%d\n", missing);
}
return 0;
}
5.rules
思路:记使用规则的人数2与总人数比较,再记天数2与总天数比较

include

using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
int count = 0;
for (int i = 0; i < m; i++) {
int num_people_follow_k = 0;
for (int j = 0; j < n; j++) {
int rule;
cin >> rule;
if (rule == k) {
num_people_follow_k++;
}
}
if (num_people_follow_k*2 >= n ) {
count++;
}
}
if (count *2>= m) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}

posted @ 2025-01-23 13:34  yuiaoch  阅读(34)  评论(0)    收藏  举报