JRKSJ 的比赛 Round 6 Div.2 记录

JRKSJ 的比赛 Round 6 Div.2

T1

作为Div2的第一题,毋庸置疑,相当简单(虽然但是我只做对了这一道题)。首先一看题,十分简单,就是求区间内满足\(f(x)<f(x+1)\),其中\(f(x)\)为在\(2\)进制下最低的\(1\)的位置。它甚至还“贴心地”告诉了我求\(f(x)\)的代码。那肯定是不能这样暴力求的,不然人人一百,那有多少分呢?(赛时没试)40分?。当时就灵机一动,会不会是奇数的个数,样例也符合,当时也没想是否正确,直接码,暴力枚举奇数,40分。其余TLE。突然就发现自己好傻,这为什么要枚举,直接算公式啊!。。。最后也是AC了。顺便贴一下代码。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
namespace IO{
	char ibuf[(1<<20)+1],*iS,*iT;
	#if ONLINE_JUDGE
	#define gh() (iS==iT?iT=(iS=ibuf)+fread(ibuf,1,(1<<20)+1,stdin),(iS==iT?EOF:*iS++):*iS++)
 	#else
	#define gh() getchar()
	#endif
	#define reg register
	inline long long read(){
		reg char ch=gh();
		reg long long x=0;
		reg char t=0;
		while(ch<'0'||ch>'9')   t|=ch=='-',ch=gh();
		while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=gh();
		return t?-x:x;
	}
}
using IO::read;
const int N=100000+10, INF=0x3f3f3f3f;
ll T,l,r;
int main(){
	ios::sync_with_stdio(0);
	T=read();
	for(register ll i=1;i<=T;++i){
		l=read();r=read();
		ll ans;
		if(l%2==0&&r%2==0)ans=(r-l)/2;
		else if(l%2==0&&r%2!=0)ans=(r+1-l)/2;
		else if(l%2!=0&&r%2==0)ans=(r-(l+1))/2+1;
		else ans=(r-l)/2+1;
		printf("%lld\n",ans);
	}
	return 0;
}
/*
[2 6]=2 (6-2)/2; [4,10]=3 (10-4)/2;
[2 5]=2 (5+1-2)/2;
[1 6]=3 (6-(1+1))/2+1
[1 5]=3 (5-1)/2+1;
[3 11]=5 (11-3)/2+1;
/*
今天你AC了几题?
不要颓废!!!!
Dalao has AKed IOI several times!!!
*/

T2&T3

都是SpecialJudge 完全不会,T2题目看懂了,但是不会做。呜呜呜呜呜。T3让我有一种能A但又差很远的感觉,暴力都不会了(主要是感觉一点分都没有)。链表这一特殊情况也不会处理(<-弱鸡)。

T4

好耶终于会部分分了!不过这是备用题,其实难度不高。这题我可以拿20或30,但是不能50/ll,最后还是搞了Subtask2 拿了30分,用到了前缀和(早上才看嘿嘿嘿,当时感觉有点lucky)。

总结

实力还是不够滴!而且差很远!不过也没有<100,有进步但不大。还是没有完成上一次的flag————“rated比赛中A掉2题”。下次努力吧。总分100+0+0+0+30=130分。最后排名521/ww,比例已经比上次高啦!

比赛链接

posted @ 2022-10-04 18:43  LsmQwQ  阅读(43)  评论(0)    收藏  举报