HDU - 5186 - zhx's submissions (精密塔尔苏斯)
zhx's submissions
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 540 Accepted Submission(s): 146
One day, zhx wants to count how many submissions he made on n ojs.
He knows that on the ith oj,
he made ai submissions.
And what you should do is to add them up.
To make the problem more complex, zhx gives you n B−base numbers
and you should also return a B−base number
to him.
What's more, zhx is so naive that he doesn't carry a number while adding. That means, his answer to 5+6 in 10−base is 1.
And he also asked you to calculate in his way.
Seek EOF as
the end of the file.
For each test, there are two integers n and B separated
by a space. (1≤n≤100, 2≤B≤36)
Then come n lines. In each line there is a B−base number(may
contain leading zeros). The digits are from 0 to 9 then
from a to z(lowercase).
The length of a number will not execeed 200.
leading zero).
2 3 2 2 1 4 233 3 16 ab bc cd
1 233 14
思路:就是不进位的大数相加啦,要注意当结果为0时输出一个0。之前我还做过一个差点儿相同的,上次注意到了,。这次竟然没注意到o(╯□╰)o.........
疑问:为何执行时间900多ms,并且还可能会T,把cstdio改为stdio.h时间就降下来了。直接变为100多ms,害的我还检查半天。。。可是这是为什么??????
搞了半天我发现使用g++环境提交的没过。而用c++环境就过啦(以后再HDU做题还是用c++环境吧。醉啦)
据说g++用scanf由于输入太慢而要开挂(难道和cin减速一个性质??)。。,。貌似是这种,以后再试试
- void gn(int &x){
- char c;while((c=getchar())<'0'||c>'9');x=c-'0';
- while((c=getchar())>='0'&&c<='9')x=x*10+c-'0';
- }
AC代码①(100+ms。g++环境):
- #include <stdio.h>
- #include <cstring>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- char ans[205];
- char t[205];
- void fun(char ans[], char t[]) {
- int len = strlen(t);
- for(int i = 0; i < len; i++) {
- ans[i] = t[len - 1 - i];
- }
- }
- void swap(char t[]) {
- int len = strlen(t);
- for(int i = 0; i < len / 2; i++) {
- char m = t[i];
- t[i] = t[len - 1 - i];
- t[len - 1 - i] = m;
- }
- }
- void add(char ans[], char t[], int B) {
- int t1, t2, t3;
- int len = strlen(t);
- for(int i = 0; i < len; i++) {
- if(ans[i] <= 'z' && ans[i] >= 'a') t1 = (int)(ans[i] - 'a' + 10);
- else t1 = ans[i] - '0';
- if(t[i] <= 'z' && t[i] >= 'a') t2 = (int)(t[i] - 'a' + 10);
- else t2 = t[i] - '0';
- t3 = (t1 + t2) % B;
- if(t3 >= 10) ans[i] = (char)(t3 - 10 + 'a');
- else ans[i] = (char)(t3 + '0');
- }
- }
- void print(char ans[]) {
- int flag = 0, p;
- for(int i = 204; i >= 0; i--) {
- if(ans[i] != '0') {
- printf("%c", ans[i]);
- flag = 1;
- }
- else if(ans[i] == '0' && flag) printf("0");
- }
- if(flag == 0) printf("0");
- printf("\n");
- }
- int main() {
- int n, B;
- while(scanf("%d %d", &n, &B) != EOF) {
- for(int i = 0; i< 205; i++) ans[i] = '0';
- scanf("%s", t);
- fun(ans, t);
- for(int i = 0; i < n-1; i++) {
- scanf("%s", t);
- swap(t);
- add(ans, t, B);
- }
- print(ans);
- }
- return 0;
- }
代码②(900+ms or TLE。g++环境):
- #include <cstdio>
- #include <cstring>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- char ans[205];
- char t[205];
- void fun(char ans[], char t[]) {
- int len = strlen(t);
- for(int i = 0; i < len; i++) {
- ans[i] = t[len - 1 - i];
- }
- }
- void swap(char t[]) {
- int len = strlen(t);
- for(int i = 0; i < len / 2; i++) {
- char m = t[i];
- t[i] = t[len - 1 - i];
- t[len - 1 - i] = m;
- }
- }
- void add(char ans[], char t[], int B) {
- int t1, t2, t3;
- int len = strlen(t);
- for(int i = 0; i < len; i++) {
- if(ans[i] <= 'z' && ans[i] >= 'a') t1 = (int)(ans[i] - 'a' + 10);
- else t1 = ans[i] - '0';
- if(t[i] <= 'z' && t[i] >= 'a') t2 = (int)(t[i] - 'a' + 10);
- else t2 = t[i] - '0';
- t3 = (t1 + t2) % B;
- if(t3 >= 10) ans[i] = (char)(t3 - 10 + 'a');
- else ans[i] = (char)(t3 + '0');
- }
- }
- void print(char ans[]) {
- int flag = 0, p;
- for(int i = 204; i >= 0; i--) {
- if(ans[i] != '0') {
- printf("%c", ans[i]);
- flag = 1;
- }
- else if(ans[i] == '0' && flag) printf("0");
- }
- if(flag == 0) printf("0");
- printf("\n");
- }
- int main() {
- int n, B;
- while(scanf("%d %d", &n, &B) != EOF) {
- for(int i = 0; i< 205; i++) ans[i] = '0';
- scanf("%s", t);
- fun(ans, t);
- for(int i = 0; i < n-1; i++) {
- scanf("%s", t);
- swap(t);
- add(ans, t, B);
- }
- print(ans);
- }
- return 0;
- }
AC代码③:
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- #define maxn 205
- char tmp[maxn][maxn], ans[maxn][maxn], ch[50];
- int to[maxn];
- void init() {
- memset(ch, 0, sizeof(ch));
- memset(to, 0, sizeof(to));
- for(int i = 0; i <= 35; i++) {
- if(i <= 9) ch[i] = i + '0', to[i + '0'] = i;
- else ch[i] = i - 10 + 'a', to[i - 10 + 'a'] = i;
- }
- }
- int main() {
- int n, B;
- init();
- while(~scanf("%d %d", &n, &B)) {
- memset(ans, 0, sizeof(ans));
- memset(tmp, 0, sizeof(tmp));
- for(int i = 1; i <= n; i++) {
- scanf("%s", tmp[i]);
- int len = strlen(tmp[i]);
- for(int j = 0; j < len; j++) {
- ans[i][j] = tmp[i][len-1-j];
- }
- }
- int flag = 0;
- for(int i = maxn - 1; i >= 0; i--) {
- int t = 0;
- for(int j = 1; j <= n; j++) {
- t += to[ans[j][i]];
- }
- t %= B;
- if(t) flag = 1;
- if(flag) printf("%c", ch[t]);
- }
- if(!flag) printf("0");
- printf("\n");
- }
- return 0;
- }
版权声明:本文博客原创文章,博客,未经同意,不得转载。
HDU - 5186 - zhx's submissions (精密塔尔苏斯)的更多相关文章
- HDU 5186 zhx's submissions (进制转换)
Problem Description As one of the most powerful brushes, zhx submits a lot of code on many oj and mo ...
- HDU 5186 zhx's submissions 模拟,细节 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=5186 题意是分别对每一位做b进制加法,但是不要进位 模拟,注意:1 去掉前置0 2 当结果为0时输出0,而不是全 ...
- HDU - 5187 - zhx's contest (高速幂+高速乘)
zhx's contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- HDU 5187 zhx's contest(防爆__int64 )
Problem Description As one of the most powerful brushes, zhx is required to give his juniors n probl ...
- hdu 5186(模拟)
zhx's submissions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- hdu 5188 zhx and contest [ 排序 + 背包 ]
传送门 zhx and contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]
传送门 zhx's contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- hdu 3966 Aragorn's Story(树链剖分+树状数组)
pid=3966" target="_blank" style="">题目链接:hdu 3966 Aragorn's Story 题目大意:给定 ...
- HDU 3966 Aragorn's Story(树链剖分)
HDU Aragorn's Story 题目链接 树抛入门裸题,这题是区间改动单点查询,于是套树状数组就OK了 代码: #include <cstdio> #include <cst ...
随机推荐
- 修ecshop品牌筛选以LOGO图片形式显示
如何实现商品列表页属性筛选区品牌筛选以LOGO形式展示,最模板总结ecshop/'>ecshop教程入下: 1.修改 category.php 文件,将(大概215行) $sql = " ...
- const使用摘要
const在四种方案如以下: int b = 500; const int *a = &b; ①(底层const) int const *a = &b; ②(底层const) int ...
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'L
1.错误叙述性说明 [ERROR:]2015-06-08 09:49:42,523 [异常拦截] org.hibernate.exception.DataException: error execut ...
- erlang如何有效地监视大量的并发连接
阅读erlang一些开源web框架RabbitMQ.Ranch,他们使用多个进程在同一时间accept一socket.以这样的方式,使socketport监控共享很多其他的机会调度工作,但,在erla ...
- WCF配置文件
因为要上传较大的图片,WCF传递数组的默认的最大数组16KB就不够了.以下讲解配置内容. 服务端配置 这里一个WCF项目中有1个服务,配置文件如下(位于system.serviceModel标签中): ...
- Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求)
Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中的XMLHttpRequestTes ...
- HDU4960Another OCD Patient(间隙dp,后座DP)
Another OCD Patient Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Ot ...
- mac开启22port
mac开启22port 选择System prefrence -> sharing , 将remote login打开 測试是否打开 import socket s = socket.socke ...
- 全文检索引擎Solr 指南
全文检索引擎Solr系列:第一篇:http://t.cn/RP004gl.第二篇:http://t.cn/RPHDjk7 .第三篇:http://t.cn/RPuJt3T
- dm8148 jpeg编解码器测试
测试过程: 1)于A8将jpeg传送到videoM3解码,然后,videoM3编码.在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间: 1000w像素: 编码时间:43ms. ...