2017CCPC秦皇岛
来源:互联网 发布:windows live影音 编辑:程序博客网 时间:2024/04/27 23:59
热身赛
B题 Smartphone: 大整数相乘
Time Limit: 1 Second Memory Limit: 65536 KB
Helianthuswolf Co. Ltd. is a multinational “Intestnet” company. Its revenue from global markets grew year by year. Helianthuswolf unveiled its new smartphone Q10 in the spring of 2017.
As a high-end smartphone, Q10 uses UFS2.1 or UFS2.0 or eMMC5.1 for its flash drive. Q10 also uses LPDDR3 or LPDDR4 as its memory, and its CPU does not support DDR3. In order to better show the performance of the Q10, Helianthuswolf reduced the oleophobic coating layer of some smartphones.
Helianthuswolf produces Q10 in two factories. As you see in the following table, the probabilities of the components they use are different. And the use of each component is an independent event.
Flash Drive Memory Oleophobic Layer
UFS2.0 UFS2.1 eMMC5.1 LPDDR3 LPDDR4 Sparse Normal
A 20% 30% 50% 40% 60% 70% 30%
B 30% 50% 20% 70% 30% 40% 60%
Now we get the information of Q10 smartphones produced by one factory. The smartphones are all produced by either factory A or factory B. Please find out which factory is more likely to produce these smartphones.
Input
There are multiple test cases. The first line of the input contains an integer (), indicating the number of test cases. For each test case:
The first line is an integer (), indicating the number of smartphones.
The following lines are the information of the smartphones, each line has three words describing the components.
Output
For each test case, output “A” (without quotes) if it is more likely for factory A to produce these smartphones, output “B” (without quotes) if it is more likely for factory B to produce these smartphones. If it is equally likely for the two factories to produce these smartphones, output “E” (without quotes).
Sample Input
3
1
eMMC5.1 LPDDR4 Sparse
2
UFS2.1 LPDDR3 Sparse
UFS2.0 LPDDR4 Normal
3
UFS2.1 LPDDR3 Sparse
eMMC5.1 LPDDR4 Normal
UFS2.0 LPDDR4 Normal
Sample Output
A
B
E
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#include <string>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#define INF 0x3f3f3f3f#define EPS 0.00000001#define lowbit(x) (x&(-x))using namespace std;typedef long long ll;char a1[3][10] = {"UFS2.0","UFS2.1","eMMC5.1"};char a2[2][10] = {"LPDDR3","LPDDR4"};char a3[2][10] = {"Sparse","Normal"};double r1[2][3] = {{2,3,5},{3,5,2}};double r2[2][2] = {{4,6},{7,3}};double r3[2][2] = {{7,3},{4,6}};int main(){ int T; scanf("%d",&T); while(T--) { int n; char s1[10],s2[10],s3[10]; double ans1 = 0, ans2 = 0; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s%s%s",s1,s2,s3); for(int i=0;i<3;i++) if(strcmp(s1,a1[i]) == 0) { ans1 += log(r1[0][i]); ans2 += log(r1[1][i]); break; } for(int i=0;i<2;i++) if(strcmp(s2,a2[i]) == 0) { ans1 += log(r2[0][i]); ans2 += log(r2[1][i]); break; } for(int i=0;i<2;i++) if(strcmp(s3,a3[i]) == 0) { ans1 += log(r3[0][i]); ans2 += log(r3[1][i]); break; } } if(abs(ans1 - ans2) <= EPS) printf("E\n"); else if(ans1 < ans2) printf("B\n"); else printf("A\n"); }}
D题 17171771:DFS + Miller_Rabin
Time Limit: 2 Seconds Memory Limit: 65536 KB 17171771 is a sweet
17171771 is a sweet song in Jaurim’s 5th album, “All You Need Is Love”, released in October 2004.
What’s the meaning of 17171771? If we rotate it by 180 degrees, it looks like “ILLILILI”. If we add some blanks into it, it becomes “I LLILI LI”. Doesn’t it look like “I LUV U”? The meaning of 17171771 is “I LUV U”. Anyway, it has nothing to do with our problem.
What we are concerned more about is that, 17171771 is a prime consisting only of digits 1 and 7 occurring with equal frequency. In this problem, a prime consisting only of two different digits occurring with equal frequency is called nice number. For example, 89, 71717117 and 23323333222223 are nice numbers.
Your task is to print all the nice numbers which are strictly less than 1018
Input
There is no input for this problem.
Output
Output all the nice number less than 1018 in increasing order. The output looks like the following:
13
17
19
…
17171771
…
AC代码:
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#include <string>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#define INF 0x3f3f3f3f#define lowbit(x) (x&(-x))typedef long long ll;using namespace std;vector <ll> vi;set <ll> st;void dfs(int *a,int len){ do{ ll tp = 0; if(a[0] == 0) continue; for(int i=0;i<len;i++) tp = tp * 10 + a[i]; vi.push_back(tp); }while(next_permutation(a, a + len));}ll prime[6] = {2, 3, 5, 233, 331};ll qmul(ll x, ll y, ll mod) // 乘法防止溢出, 如果p * p不爆ll的话可以直接乘; O(1)乘法或者转化成二进制加法{ return (x * y - (ll)(x / (long double)mod * y + 1e-3) * mod + mod) % mod;}ll qpow(ll a, ll n, ll mod){ ll ret = 1; while(n) { if(n & 1) ret = qmul(ret, a, mod); a = qmul(a, a, mod); n >>= 1; } return ret;}bool Miller_Rabin(ll p){ if(p < 2) return 0; if(p != 2 && p % 2 == 0) return 0; ll s = p - 1; while(! (s & 1)) s >>= 1; for(int i = 0; i < 5; ++i) { if(p == prime[i]) return 1; ll t = s, m = qpow(prime[i], s, p); while(t != p - 1 && m != 1 && m != p - 1) { m = qmul(m, m, p); t <<= 1; } if(m != p - 1 && !(t & 1)) return 0; } return 1;}int main(){ int a[20] = {0}; for(int i=0;i<=9;i++) for(int j=i+1;j<=9;j++) for(int k=1;k<=8;k++) { for(int l=0;l<k;l++) { a[l] = i; a[l+k] = j; } dfs(a, k*2); } for(int i=0;i<vi.size();i++) if(Miller_Rabin(vi[i])) st.insert(vi[i]); int cnt = 0; for(set<ll>::iterator it = st.begin(); it != st.end(); it++) { printf("%lld\n",(*it)); cnt ++; } cout << cnt << endl;}
阅读全文
0 0
- 2017 CCPC 秦皇岛站
- 2017 CCPC秦皇岛 B
- 2017 CCPC秦皇岛 D
- 2017CCPC秦皇岛
- 2017 CCPC 秦皇岛
- 2017 CCPC 秦皇岛 C
- 2017 CCPC 秦皇岛 E
- 2017 CCPC 秦皇岛 L
- 2017 CCPC 秦皇岛 M
- 2017CCPC秦皇岛 E:String of CCPC
- 2017 ccpc 秦皇岛E String of CCPC
- 2017 CCPC 秦皇岛 G题
- 2017 ccpc秦皇岛站总结
- 2017 CCPC-秦皇岛站总结
- 2017CCPC秦皇岛站总结
- 2017ccpc秦皇岛站总结
- 2017CCPC秦皇岛现场赛
- 2017 CCPC 秦皇岛站总结
- 关于Libevent的快速可移植非阻塞网络编程(block-》select-》poll-》epoll-》libevent)
- VS2015 tfs的使用教程
- mac安装mysql的两种方法(含配置)
- 什么双机热备? 为什么要做双机热备? 双机热备有哪几种?
- UITableView 卡顿、掉帧、的优化。cell里面循环创建view 导致卡顿掉帧的优化
- 2017CCPC秦皇岛
- kafka集群的安装及简单测试
- js实现微信摇一摇以及震动
- [Kafka]为什么使用kafka?
- 平安一账通面试
- Vs2015 tesseract 3.05 编译x86 dll 调用 身份证数字识别
- Fragment切换 hide/show 生命周期的运用
- StackNavigator的简单使用
- JavaMail发送文本邮件换行