hdu 5308 I Wanna Become A 24-Point Master 2015 Multi-University Training Contest 2
2015-07-23 22:08
465 查看
题意:n个 n构造出一个24点的式子来。
特判n<14的所有情况(注意当1 2 3的时候不行),例如 5 :(5*5*5-5)/5 7:(7+7+7)/7+7+7+7,然后对于大于等于14的,构造4*6,如(x+x+x+x)/x*(x+x+x+x+x+x)/x+(x-x)*x....这样子,然后输出.
另附我A spj代码
spj代码:
特判n<14的所有情况(注意当1 2 3的时候不行),例如 5 :(5*5*5-5)/5 7:(7+7+7)/7+7+7+7,然后对于大于等于14的,构造4*6,如(x+x+x+x)/x*(x+x+x+x+x+x)/x+(x-x)*x....这样子,然后输出.
另附我A spj代码
//#include <bits/stdc++.h> #include <map> #include <set> #include <queue> #include <stack> #include <cmath> #include <time.h> #include <vector> #include <cstdio> #include <string> #include <iomanip> ///cout << fixed << setprecision(13) << (double) x << endl; #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 #define ls rt << 1 #define rs rt << 1 | 1 #define pi acos(-1.0) #define eps 1e-8 #define Mp(a, b) make_pair(a, b) #define asd puts("asdasdasdasdasdf"); typedef long long ll; //typedef __int64 LL; const int inf = 0x3f3f3f3f; int n; int main() { //freopen( "date.in", "w", stdout ); while( ~scanf("%d", &n) ) { //for( n = 4; n <= 110; ++n ) { int x = n; //printf("%d\n", x); if( n <= 3 ) { printf("-1\n"); continue; } if( x == 9 ) { printf("1 + 2\n"); printf("10 + 3\n"); for( int i = 4; i <= 6; ++i ) printf("%d / %d\n", i, i + 3); printf("13 + 12\n"); printf("15 + 14\n"); printf("11 - 16\n"); continue; } if( x == 4 ) { printf("1 * 2\n"); printf("5 + 3\n"); printf("6 + 4\n"); continue; } if( x == 5 ) { printf("1 * 2\n"); printf("3 * 6\n"); printf("7 - 4\n"); printf("8 / 5\n"); continue; } if( n == 6 ) { printf("1 + 2\n"); printf("3 + 4\n"); printf("5 - 6\n"); printf("7 + 8\n"); printf("10 + 9\n"); continue; } if( n == 7 ) { printf("1 + 2\n"); //8 14 printf("3 + 8\n"); //9 21 printf("4 + 5\n"); //10 14 printf("6 + 10\n"); //11 21 printf("11 / 7\n"); printf("9 + 12\n"); continue; } if( n == 8 ) { printf("1 + 2\n"); //9 16 printf("3 + 9\n"); //10 24 printf("4 - 5\n"); //11 0 printf("11 * 6\n"); //12 printf("12 * 7\n"); printf("13 * 8\n"); printf("14 + 10\n"); continue; } if( n == 10 ) { printf("1 + 2\n"); //11 20 printf("3 / 4\n"); //12 1 printf("5 / 6\n"); //13 1 printf("7 / 8\n"); //14 1 printf("9 / 10\n"); //15 1 printf("11 + 12\n"); //16 printf("16 + 13\n"); printf("17 + 14\n"); printf("18 + 15\n"); continue; } if( n == 11 ) { printf("2 / 3\n"); //12 1 printf("4 / 5\n"); //13 1 printf("6 / 7\n"); //14 1 printf("8 / 9\n"); //15 1 printf("10 / 11\n");//16 1 printf("12 + 13\n");//17 2 printf("1 * 17\n"); //18 22 printf("14 * 15\n");//19 1 printf("18 + 19\n");//20 23 printf("20 + 16\n"); continue; } if( n == 12 ) { printf("3 / 4\n"); printf("5 / 6\n"); printf("7 / 8\n"); printf("9 / 10\n"); printf("11 / 12\n"); //13~17 printf("13 - 14\n");//18 printf("18 * 15\n"); printf("19 * 16\n"); printf("20 * 17\n"); printf("21 + 2\n"); printf("22 + 1\n"); continue; } if( n == 13 ) { printf("2 / 3\n"); //14 printf("4 / 5\n"); //15 printf("6 / 7\n"); //16 printf("8 / 9\n"); //17 printf("10 / 11\n");//18 printf("12 / 13\n");//19 printf("15 + 16\n");//20 2 printf("1 - 14\n"); //21 12 printf("21 * 20\n");//22 printf("22 * 17\n"); printf("23 * 18\n"); printf("24 * 19\n"); continue; } if( n >= 14 ) { printf("1 + 2\n");//n+1 printf("3 + 4\n");//n+2 printf("5 + 6\n");//n+3 printf("7 + 8\n");//n+4 printf("9 + 10\n");//n+5 printf("%d + %d\n", n+1, n+2); //n+6 printf("%d / %d\n", n+6, 11); //n+7 4 printf("%d + %d\n", n+3, n+4); //n+8 printf("%d + %d\n", n+8, n+5); //n+9 printf("%d / %d\n", n+9, 12); //n+10 6 printf("%d * %d\n", n+10, n+7); //n+11 24 printf("13 - 14\n"); //n+12 0 for( int i = 15; i <= n; ++i ) { printf("%d * %d\n", i, n+i-3); } printf("%d + %d\n", n+11, 2*n-2); } } return 0; }
spj代码:
int arr[220010]; char op[10]; int main() { freopen("date.in", "r", stdin); //freopen("date.out", "w", stdout); int i; while( ~scanf("%d", &i) ) { for (int j = 1; j <= i; ++j) { arr[j] = i; } int u, v; int cnt = i + 1; for (int j = 1; j <= i - 1; ++j) { scanf("%d%s%d", &u, op, &v); if (op[0] == '+') { arr[cnt++] = arr[u] + arr[v]; } else if (op[0] == '-') { arr[cnt++] = arr[u] - arr[v]; } else if (op[0] == '*') { arr[cnt++] = arr[u] * arr[v]; } else { arr[cnt++] = arr[u] / arr[v]; } } printf("%d\n", arr[cnt - 1]); } return 0; }
相关文章推荐
- 2015 HUAS Summer Training#2~C
- hdu 3461 Code Lock(并查集)2010 ACM-ICPC Multi-University Training Contest(3)
- 2015 Multi-University Training Contest 2 Friends
- Container With Most Water
- fork http://baike.baidu.com/link?url=NtmCc5dQQrmeNnKLTcfjH1lmuH-YVrQqN9wITIAxrJTzcEaQDaS26wxV7V0BagE
- HDU-1023 Train Problem II(卡特兰数)
- 使用 DB Fixtures 为 Unit Test 提供基础数据,Sails + Mocha 实现。
- 2015 Multi-University Training Contest 2 1006 Friends 壮压
- 2015 HUAS Summer Training#2~E
- 2015多校联合训练赛 hdu 5305 Friends 2015 Multi-University Training Contest 2 枚举+剪枝
- main参数介绍
- 2015 Multi-University Training Contest 2 1006
- 基于Pre-Train的CNN模型的图像分类实验
- Hdu 5305 Friends 2015 Multi-University Training Contest 2
- HDU 5235 Friends (2015 Multi-University Training Contest 2 搜索+剪枝)
- LeetCode#70 Climbing Stairs
- 2015 Multi-University Training Contest 2 1004 苹果树 dp+单调队列
- 2015多校联合训练赛 hdu 5308 I Wanna Become A 24-Point Master 2015 Multi-University Training Contest 2 构造题
- 2015 Multi-University Training Contest 2 1006 Friends
- 理解OpenContrail(by quqi99)