Advertisement

上海市计算机学会月赛2021年2月丙组

阅读量:
打印栅栏
复制代码
    #include <iostream>
    using namespace std;
    
    int main() {
    	int n, k;
    	cin >> n >> k;
    	
    	for (int i = 1; i <= n; i ++) {
    		cout << '+';
    		for (int j = 1; j <= k; j ++) {
    			cout << '-';
    		}
    	}
    	cout << '+';	
    	
    	return 0;
    }
合成游戏
复制代码
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
    	long long n, x, sum = 0;
    	
    	cin >> n;
    	for (int i = 1; i <= n; i ++) {
    		cin >> x;
    		sum += x;
    	}	
    	
    	long long ans = 1;
    	while (ans <= sum) {
    		ans *= 2;
    	}
    	 
    	cout << ans / 2;
    	
    	return 0;
    }
循环节的判定
复制代码
    #include <iostream>
    using namespace std;
    
    int main() {
    	string s, a;
    	cin >> s >> a;
    	
    	int t = s.size()/a.size();
    	
    	string b = "";
    	for (int i = 1; i <= t; i ++) {
    		b += a;
    	}
    
    	if (s == b) cout << "Yes";
    	else cout << "No";
    	
    	return 0;
    }
切香肠
复制代码
    #include <iostream>
    using namespace std;
    
    int f(int n, int k) {
    	if (n%k == 0) return 0;
    	if (k%n == 0) return (k/n-1) * n;
    	else return k/n*n + f(n%k, k%n);	
    }
    
    int main() {
    	int n, k;
    	cin >> n >> k;
    	
    	cout << f(n, k);
    	return 0;
    }
自修教室
复制代码
    #include <iostream>
    using namespace std;
    
    const int N = 1e6 + 1;
    int n, a[N], sum[N];
    
    int main() {
    	cin >> n;
    	
    	while (n --) {
    		int s, t;
    		cin >> s >> t;
    		a[s] += 1;
    		a[t+1] -= 1;
    	}
    	
    	int maxx = 0;
    	for (int i = 1; i <= 1e6; i ++) {
    		sum[i] = sum[i-1] + a[i];
    		maxx = max(maxx, sum[i]);
    	}
    	
    	cout << maxx;
    
    	return 0;
    }

全部评论 (0)

还没有任何评论哟~