BestCoder Round #33(zhx's submissions-手速题,注意判断00和0的情况)

zhx‘s submissions

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 1459    Accepted Submission(s): 232

问题描述

作为史上最强的刷子之一,zhx在各大oj上交了很多份代码,而且多数都AC了。
有一天,zhx想数一数他在n 

个oj上一共交了多少份代码。他现在已经统计出在第i 

个oj上,他交了a i  

份代码。而把它们加起来就是你的工作了。
当然zhx是一个不走寻常路的人,所以他的数字都是用B 

进制表示的。而他也要求你告诉他B 

进制的数。
但是zhx有一个恶趣味的习惯,他算加法的时候从来不进位。比如他算十进制5+6 

的答案是1 

。而且他还要求你也要按照他的方式来做加法。

输入描述

多组数据(不超过1000 

组)。读到文件尾。
对于每组数据,第一行是两个空格分开的正整数n 

和B 

(1≤n≤100 

, 2≤B≤36 

)
接下来n 

行,每行一个B 

进制数a i  

。数码是0到9和小写a到z。输入可能包含前导0,数字长度不超过200位。

输出描述

对于每组询问输出一行一个B 

进制数表示答案。不能包含前导0。

输入样例

2 3
2
2
1 4
233
3 16
ab
bc
cd

输出样例

1
233
14

纯粹手速题~

这道题,由于没考虑答案的前导0,wa了。。。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define MAXN (100000+10)
#define MAXB (36+10)
typedef long long ll;
int n,F,a[MAXN],b[MAXN];
char s[MAXN];
void add()
{
	int len=b[0];
	For(i,a[0])
	{
		b[i]=(b[i]+a[i])%F;
		if (b[i]>0&&i>len) len=i;
	}
	b[0]=len;

	return;
}
int main()
{
//	freopen("zhx's submissions.in","r",stdin);
	while(scanf("%d%d",&n,&F)==2)
	{
		MEM(a)
		MEM(b) b[0]=1;

		For(i,n)
		{

			scanf("%s",s);
			int m=strlen(s);
			int p=0;
			bool flag=0;
			Rep(i,m)
			{
				if (!flag&&s[i]=='0') continue;else flag=1;
				a[++p]='0'<=s[i]&&s[i]<='9' ? s[i]-'0':s[i]-'a'+10;
			}
			a[0]=p;
			For(i,p/2) swap(a[i],a[p-i+1]);
			add();

		}
		while (b[0]>1&&b[b[0]]==0) --b[0];
		ForD(i,b[0]) printf("%c",b[i]<=9?b[i]+'0':b[i]-10+'a');
		printf("\n");

	}

	return 0;
}

BestCoder Round #33(zhx's submissions-手速题,注意判断00和0的情况)

时间: 2024-10-21 20:38:22

BestCoder Round #33(zhx's submissions-手速题,注意判断00和0的情况)的相关文章

BestCoder #33 zhx&#39;s submissions

解题报告不写了,光贴个代码..主要是注意各个符号,然后字符串的变换等等. #include <iostream> #include <stdio.h> #include <string.h> #include <vector> #include <map> #include <algorithm> #include <queue> #include <cmath> #include <bitset>

MemSQL Start[c]UP 2.0 - Round 1(无聊练手B题)

http://codeforces.com/contest/452/problem/B B. 4-point polyline time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a rectangular grid of lattice points from (0, 0) to (n, m) inc

BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元

BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这个题.... C 数据结构题   我写了半个小时分块   然后发现     改的是颜色.... 我的天  炸炸炸 D. 没看懂题目要干啥.....  官方题解要搞死小圆

BestCoder Round #33

A和B做法和官方题解一样 C题我是用背包+map,先把任务按最早开始的时间进行排序,然后去背包,dp[j]表示j时间能得到最大的得分,然后就过了.. 代码: A: #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int n, b; char str[205]; int ans[205]; int get(char c) { if (c >= '0' &

CodeForces 408B 手速题

//CodeForces 408B 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 using namespace std; 6 int n1[30], n2[30]; 7 char s1[1010], s2[1010]; 8 int len1, len2; 9 10 int main() 11 {

CodeForces 405B 手速题

//CodeForces 405B 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 using namespace std; 6 char str[3010]; 7 int n; 8 9 int main() 10 { 11 int i, j, res = 0, pos; 12 char c; 13

CodeForces 404A 手速题

//CodeForces 404A 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 using namespace std; 6 char mat[310][310]; 7 int n; 8 bool check_1() 9 { 10 int i; 11 char c = mat[1][1]; 12

CodeForces 407A 手速题

//CodeForces 407A 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 using namespace std; 6 int square[1010]; 7 struct p 8 { 9 int x, y; 10 }A[1010], B[1010]; 11 int tot_a, tot_b

CodeForces 412D 手速题

//CodeForces 412D 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 #include "vector" 6 using namespace std; 7 int tot, first[30010], next[100010], to[100010]; 8 bool