zoukankan      html  css  js  c++  java
  • 团体程序设计天梯赛 L1-046~L1-050

    L1-046

    思路:

    我们模拟一下手写除法即可

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    	int x, ans = 1, n = 1;
    	cin >> x;
    	while(ans < x) ans = ans * 10 + 1, ++n;
    	while(true){
    		cout << ans / x;
    		if(ans % x == 0) break;
    		ans = (ans % x) * 10 + 1;
    		++n;	
    	}
    	cout << ' ' << n;
    	return 0;
    }
    

    L1-047

    思路:

    if判断下即可

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    	int n;
    	cin >> n;
    	while(n--){
    		string s;
    		int x, y;
    		cin >> s >> x >> y;
    		if(x < 15 || x > 20 || y < 50 || y > 70) cout << s << '
    ';	
    	}
    	return 0;
    }
    

    L1-048

    思路:

    学会矩阵乘法即可

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    typedef vector<int> vec;
    typedef vector<vec> mat;
    
    void out(mat & m){
    	for(int i = 0; i < m.size(); i++){
    		putchar('
    ');
    		for(int j = 0; j < m[i].size(); j++){
    			if(j) putchar(' ');
    			cout << m[i][j];	
    		}
    	}
    }
    inline void read(mat & m){
    	int r, c;
    	cin >> r >> c;
    	m = mat(r, vec(c));
    	for(int i = 0; i < r; i++)
    	for(int j = 0; j < c; j++)
    	cin >> m[i][j];
    }
    void solve(mat & a, mat & b){
    	if(a[0].size() != b.size()) { printf("Error: %d != %d", a[0].size(), b.size()), exit(0); }
    	cout << a.size() << ' ' << b[0].size();
    	mat res(a.size(), vec(b[0].size()));
    	for(int i = 0; i < a.size(); ++i)
    	for(int j = 0; j < a[0].size(); ++j)
    	for(int k = 0; k < b[0].size(); ++k)
    	res[i][k] += a[i][j] * b[j][k];
    	out(res);
    }
    
    int main() {
    	mat a, b;
    	read(a);
    	read(b);
    	solve(a, b);
    	return 0;
    }
    

    L1-049

    思路:

    模拟一下座位分配过程,注意所有高校分配完后只剩一所高校时,应该间隔开来

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int maxn = 123;
    vector<int> v[maxn];
    int num[maxn];
    
    void out(int & x){
    	for(int i = 0; i < v[x].size(); i++){
    		if(i % 10) putchar(' ');
    		cout << v[x][i];
    		if((i + 1) % 10 == 0) putchar('
    ');
    	}
    }
    
    int main() {
    	int n, tot = 0, no = 0, rcd = -1;    //num of stu & record of seat
    	cin >> n;
    	for(int i = 1; i <= n; i++){
    		cin >> num[i];
    		num[i] *= 10;
    		tot += num[i];
    	}
    	while(tot){
    		for(int i = 1; i <= n; i++){
    			if(num[i] == 0) continue;
    			if(rcd == i) ++no;
    			v[i].push_back(++no);
    			--tot; --num[i];
    			rcd = i;	
    		}
    	}
    	for(int i = 1; i <= n; i++){
    		printf("#%d
    ", i);
    		out(i);
    	}
    	return 0;
    }
    

    L1-050

    思路:

    我们把这题想象成26进制就很好做了

    代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main() {
    	int l, n;
    	cin >> l >> n;
    	string s = "";
    	int num = pow(26, l);
    	num -= n;
    	while(s.length() != l){
    		s += num % 26 + 'a';
    		num /= 26;
    	}
    	reverse(s.begin(), s.end());
    	cout << s;
    	return 0;
    }
    
  • 相关阅读:
    我的安卓开始
    OLAP的一些知识——接下去的项目需要的背景
    关于Java接口
    Hexo+Github/Coding免费搭建个人博客网站
    手机自带输入法emoji表情的输入,提交及显示——前端解决方案
    改变函数中的 this 指向——神奇的call,apply和bind及其应用
    什么是jsonp?——使用jsonp解决跨域请求问题
    玩转angularJs——通过自定义ng-model,不仅仅只是input可以实现双向数据绑定
    利用jquery mobiscroll插件选择日期、select、treeList的具体运用
    转载:中年程序猿的迷茫,你还在深究技术吗?
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308675.html
Copyright © 2011-2022 走看看