|
Posted on 2011-10-05 23:40 Uriel 阅读(299) 评论(0) 编辑 收藏 引用 所属分类: 考研&保研复试上机题
//2007年上海交通大学计算机研究生机试题 Old Bill基本比较水。。
1. Old Bill 暴力枚举
//2007年上海交通大学计算机研究生机试题 Old Bill #include<stdio.h> #include<stdlib.h> #include<string.h>
int n;
int main() { int i, j, a, b, c, tp; while(~scanf("%d", &n)) { scanf("%d %d %d", &a, &b, &c); for(i = 9; i >= 0; --i) { for(j = 9; j >= 0; --j) { tp = i * 10000 + a * 1000 + b * 100 + c * 10 + j; if(tp % n == 0) goto M; } } puts("0"); continue; M: printf("%d %d %d\n", i, j, tp / n); } return 0; }
2. Powerful Calculator C++好纠结。。最终还是败在高精度减法上了。。JAVA水过。。最近一定要再C++敲下。。毕竟上机考试各种JAVA不让用的。。 import java.util.*; import java.math.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger a, b; while(cin.hasNext()) { a = cin.nextBigInteger(); b = cin.nextBigInteger(); System.out.println(a.add(b)); System.out.println(a.subtract(b)); System.out.println(a.multiply(b)); } } }
3. Sum of Factorials 有点像01背包的思路。。不过只是标记是否能取到,不用取最值 PS: 0!=1,别忘了。。WA*1。。 //2007年上海交通大学计算机研究生机试题 Sum of Factorials #include<stdio.h> #include<stdlib.h> #include<string.h>
int f[10] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880}; int n, dp[1000010];
int main() { int i, j; memset(dp, 0, sizeof(dp)); dp[0] = 1; for(i = 0; i < 10; ++i) { for(j = 1000000; j >= f[i]; --j) { if(dp[j - f[i]]) dp[j] = 1; } } while(~scanf("%d", &n)) { if(dp[n]) puts("YES"); else puts("NO"); } return 0; }
4. Zero-complexity Transposition 以为有什么trick呢。。结果long long水过 //2007年上海交通大学计算机研究生机试题 Zero-complexity Transposition #include<stdio.h> #include<stdlib.h> #include<string.h>
int n; long long a[10010];
int main() { int i; while(~scanf("%d", &n)) { for(i = 0; i < n; ++i) scanf("%lld", &a[i]); for(i = n - 1; i > 0; --i) printf("%lld ", a[i]); printf("%lld\n", a[0]); } return 0; }
|