用户工具

站点工具


2020-2021:teams:wangzai_milk:20200614比赛记录

这是本文档旧的修订版!


2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest

比赛情况

题号 A B C D E F G H I J
状态 O - O O - O O O O -

O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试

比赛时间

2020-06-14 13:00-18:00

提交记录

A: Wrong Answer 2020-06-14 13:47 *3

A: Accepted 2020-06-14 13:49

D: Accepted 2020-06-14 14:00

H: Wrong Answer 2020-06-14 15:19 *3

H: Accepted 2020-06-14 15:28

C: Accepted 2020-06-14 15:42

G: Accepted 2020-06-14 16:16

F: Wrong Answer 2020-06-14 17:46 *7

F: Accepted 2020-06-14 17:58

题解

replay

比赛总结

D. Decoding of Varints

题意

语文题,就是给了一个类似128进制的定义,然后给一个未知的序列,对于这个序列中的每一个数字,如果这个数字$\geq 0$的时候,这个数就变为这个数字的二倍,奇遇的时候是这个数字相反数的二倍再减一,把新数字搞成他之前定义的形式中的每一位,现在给你每一位,让你装换回去。

数据范围

$n\leq 10000$

题解

就 模拟啊

代码

点击以显示 ⇲

点击以隐藏 ⇱

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
const int N = 1e4+5;
int a[N];
typedef unsigned long long ll;
int main()
{
	int n;
	scanf("%d",&n);
	for (int i = 1;i<= n;i++)scanf("%d",&a[i]);
	for (int i = 1;i<= n;i++) {
		int y = i;
		ll ans = 0,x = 1;
		while (y <= n) {
			if (a[y]>=128) {
				ans += (a[y]-128)*x;
				x *= 128;
				y++;
			} else {
				ans += a[y]*x;
				i = y;
				break;
			}
		}
		if (ans & 1) 
			printf("%lld\n",(long long)0-((ans-1)/2+1));
		else 
			printf("%llu\n",ans/2);
	}
	return 0;
}
2020-2021/teams/wangzai_milk/20200614比赛记录.1592752271.txt.gz · 最后更改: 2020/06/21 23:11 由 infinity37