zoukankan      html  css  js  c++  java
  • 2020蓝桥杯模拟赛(二)

    蓝桥杯模拟赛训练二


    #include <iostream>
    #include <queue>
    using namespace std;
    int main() {
    	int cnt = 0;
    	int x = 1200000;
    	for (int i = 1; i <= x; i++ ) {
    		if (x % i == 0) {
    			cnt++;
    		}
    	}
    	cout << cnt << endl;
    
    	return 0;
    }
    

    #include <iostream>
    #include <queue>
    using namespace std;
    
    int f(int x) {
    	int cnt = 0;
    	while (x) {
    		if (x % 10 == 9) {
    			cnt++;
    			break;
    		}
    		x /= 10;
    	}
    	return cnt;
    }
    
    int main() {
    	int cnt = 0;
    	for (int i = 1; i <= 2019; i++) {
    		cnt += f(i);
    	}
    	cout << cnt << endl;
    
    	return 0;
    }
    


    #include <iostream>
    #include <queue>
    using namespace std;
    
    bool f(int i) {
    	int a = i % 10;//最后一位
    	i /= 10;
    	if (i == 0) {
    		return true;
    	}
    	
    	while (i) {
    		if (a < i % 10) return false;
    		a = i % 10;
    		i /= 10;
    	}
    
    	return true;
    }
    
    int main() {
    	int cnt = 0;
    	int n;
    	cin >> n;
    	for (int i = 1; i <= n; i++) {
    		cnt += f(i);
    	}
    	cout << cnt << endl;
    
    	return 0;
    }
    

    #include <iostream>
    #include <queue>
    #include <vector>
    using namespace std;
    const int max = 105;
    char map[105][105];
    int visit[105][105];
    int n, m;
    int dir[4][2] = { {0, 1} , {1, 0} , {-1 , 0} , {0, -1} };
    
    bool in(int x, int y) {
    	if (x >= 0 && y >= 0 && x < n && y < m) return true;
    
    	return false;
    }
    
    void change() {
    	
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    
    			if (visit[i][j] == 2) { //可以去扩增
    				for (int k = 0; k < 4; k++) {
    					
    					int dx = i + dir[k][0];
    					int dy = j + dir[k][1];
    					
    					if (in(dx, dy) && visit[dx][dy] == 0) {
    
    						map[dx][dy] = 'g';
    						visit[dx][dy] ++;
    					}
    				}
    			}
    		}
    		
    	}
    	
    }
    
    void grow() {
    	
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			if (visit[i][j] != 0 )
    				visit[i][j] ++;
    		}
    	}
    
    }
    void print() {
    
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			printf("%c", map[i][j], visit[i][j]);
    		}
    		printf("
    ");
    	}
    }
    
    
    
    int main() {
    	
    	cin >> n >> m;
    	int k;
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			cin >> map[i][j];
    		}
    	}
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			if (map[i][j] == 'g') {
    				visit[i][j] ++;
    			}
    		}
    	}
    
    	cin >> k;
    	grow();
    	
    	while (k--) {
    		change();
    		grow();
    		
    	}
    	print();
    
    	return 0;
    }
    

    主要考察结构体配合vector的多级排序问题

    #include <iostream>
    #include <queue>
    #include <vector>
    #include <algorithm>
    using namespace std;
    const int Max = 100005;
    int n, m;
    struct node {
    	int x; //先按分值排序
    	int y; // 再按顺序排序
    	node(int o, int v) {
    		x = o;
    		y = v;
    	}
    };
    bool Less(node xx, node yy) {
    	if (xx.y < yy.y) return true;
    	 return false;
    }
    bool Great(node xx, node yy) {
    	if (xx.x >= yy.x) return true;
    	return false;
    }
    int main() {
    	cin >> n >> m;
    	int x;
    	vector<node> s;
    	for (int i = 0; i < n; i++) {
    		
    		scanf("%d", &x);
    		s.push_back(node( x, i + 1));
    	}
    	sort(s.begin(), s.end(),Great); //先按分值大小排序
    	sort(s.begin(), s.begin() + m, Less);
    	for (int i = 0; i < m; i++) {
    		printf("%d", s[i].x);
    	}
    	
    	return 0;
    }
    
  • 相关阅读:
    P2168 [NOI2015]荷马史诗
    P3195 [HNOI2008]玩具装箱TOY
    P1972 [SDOI2009]HH的项链
    P2339 提交作业usaco
    P3974 [TJOI2015]组合数学
    P2831 愤怒的小鸟
    [校内模拟题4]
    P3952 时间复杂度
    P3531 [POI2012]LIT-Letters
    2019.10.1 qbxt模拟题
  • 原文地址:https://www.cnblogs.com/DengSchoo/p/12584483.html
Copyright © 2011-2022 走看看