Hanoi双塔问题


1 #include<bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int a , b , c , a1;
6 char d;
7 scanf("%d-%d-%d-%c" , &a1 , &b , &c , &d);
8 a = a1 + b % 10 * 4 + b / 10 % 10 * 3 + b / 100 * 2 + c % 10 * 9 + c / 10 % 10 * 8 + c / 100 % 10 * 7 + c / 1000 % 10 * 6 + c / 10000 * 5;
9 if(a % 11 == 10 && d == 'X' || a % 11 == d - '0') printf("Right");
10 else printf("%d-%d-%d-%c" , a1 , b , c , a % 11 == 10 ? 'X' : a % 11 + '0');
11 return 0;
12 }
ISBN号码



1 //排序
2 #include<bits/stdc++.h>
3 using namespace std;
4 struct hl{
5 int i , num;
6 }h[1001] , l[1001];
7 bool cmp1(hl a , hl b)
8 {
9 return a.num > b.num;
10 }
11 bool cmp2(hl a , hl b)
12 {
13 return a.i < b.i;
14 }
15 int main()
16 {
17 ios::sync_with_stdio(false);
18 int n , m , k , q , d;
19 cin >> n >> m >> k >> q >> d;
20 for(int i = 1 ; i <= n ; i++) h[i].i = i;
21 for(int i = 1 ; i <= m ; i++) l[i].i = i;
22 for(int i = 0 ; i < d ; i++)
23 {
24 int a , b , c , d;
25 cin >> a >> b >> c >> d;
26 if(a == c) l[min(b , d)].num++;
27 else h[min(a , c)].num++;
28 }
29 sort(h , h + n , cmp1);
30 sort(h , h + k , cmp2);
31 for(int i = 0 ; i < k ; i++)
32 {
33 if(i) cout << " ";
34 cout << h[i].i;
35 }
36 cout << endl;
37 sort(l , l + m , cmp1);
38 sort(l , l + q , cmp2);
39 for(int i = 0 ; i < q ; i++)
40 {
41 if(i) cout << " ";
42 cout << l[i].i;
43 }
44 return 0;
45 }
排座椅


1 //递推
2 #include<bits/stdc++.h>
3 using namespace std;
4 int n , k , v[31][2] = {1};
5 int main(){
6 cin >> n >> k;
7 for(int i = 0 ; i < k ; i++)
8 {
9 for(int j = 0 ; j < n ; j++)
10 if(v[j][0])
11 {
12 v[(j + 1) % n][1] += v[j][0];
13 v[(j + n - 1) % n][1] += v[j][0];
14 }
15 for(int j = 0 ; j < n ; j++)
16 {
17 v[j][0] = v[j][1];
18 v[j][1] = 0;
19 }
20 }
21 cout << v[0][0];
22 return 0;
23 }
传球游戏


1 //这个模拟可还行
2 #include<bits/stdc++.h>
3 using namespace std;
4 char m[501][501];
5 char ex[6][8] = {"\0\0+---+" , "\0/ /|" , "+---+ |" , "| | +" , "| |/\0" , "+---+\0\0"
6 };
7 int num[101][101];
8 int main(){
9 ios::sync_with_stdio(false);
10 memset(m , '.' , sizeof(m));
11 int a , b;
12 cin >> a >> b;
13 int k = 0 , l = b * 4 + a * 2 + 1;
14 for(int i = 1 ; i <= a ; i++)
15 for(int j = 1 ; j <= b ; j++)
16 {
17 cin >> num[i][j];
18 k = max(k , 2 * (a - i) + 3 * num[i][j] + 3);
19 }
20 for(int i = 1 ; i <= a ; i++)
21 for(int j = 1 ; j <= b ; j++)
22 {
23 int l = 4 * j - 3 + 2 * (a - i) , h = k - 2 * (a - i);
24 while(num[i][j]--){
25 for(int p = h - 5 ; p <= h ; p++)
26 for(int q = l ; q - l < 7 ; q++)
27 if(ex[5 + p - h][q - l]) m[p][q] = ex[5 + p - h][q - l];
28 h -= 3;
29 }
30 }
31 for(int i = 1 ; i <= k ; i++)
32 {
33 if(i - 1) cout << endl;
34 for(int j = 1 ; j <= l ; j++) cout << m[i][j];
35 }
36 return 0;
37 }
立体图


1 //注意细节
2 #include<bits/stdc++.h>
3 using namespace std;
4 int main()
5 {
6 int n;
7 cin >> n;
8 for(int i = n ; i + 1 ; i--)
9 {
10 int a;
11 cin >> a;
12 if(!a) continue;
13 if(i - n && a > 0) cout << "+";
14 if(a != 1)
15 if(a != -1 || !i) cout << a;
16 else cout << "-";
17 else if(!i) cout << 1;
18 if(i) cout << "x";
19 if(i - 1 && i) cout << "^" << i;
20 }
21 return 0;
22 }
多项式输出


1 //排序
2 #include<bits/stdc++.h>
3 using namespace std;
4 struct can{
5 int bmh , score;
6 }ans[5001];
7 bool cmp(can a , can b)
8 {
9 if(a.score == b.score)
10 return a.bmh < b.bmh;
11 return a.score > b.score;
12 }
13 int main()
14 {
15 std::ios::sync_with_stdio(false);
16 int n , m;
17 cin >> n >> m;
18 for(int i = 0 ; i < n ; i++)
19 cin >> ans[i].bmh >> ans[i].score;
20 sort(ans , ans + n , cmp);
21 m *= 1.5;
22 while(ans[m - 1].score == ans[m].score) m++;
23 cout << ans[m - 1].score << " " << m << endl;
24 for(int i = 0 ; i < m ; i++) cout << ans[i].bmh << " " << ans[i].score << endl;
25 return 0;
26 }
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-124192-5.html
对于美国人对我岛礁建设提出的意见对我有利的将坚决采纳
允许有言论自由
那是替我们大陆人秀的