19-10-30-C

交文件吼啊。

ZJ一下:

T1是真·高中数学。

T2不是很清楚,只得了30。

T3打了一个欧拉序。

做的海星的地方:

  • Vim太好用辣,直接按平常打叫上去它就是 freopen 
  • T1仔仔细细的研究了高考数学
  • T1的python写的挺好。

问题:

  • T2写了一个错解还没发现QAQ。
  • T1可以打表但是没试……

TJ:

显然没改完题就来写博客是没脸行为

T1

高考数学。

数学老师告诉我们,遇到比较的问题可以:

  • 比差
  • 比商
  • 乱搞转换

于是本题可以选下。

做法0:Python

T=int(input());
for i in range(0,T):
	[a,b]=map(int,input().split());
	c=1;
	for j in range(1,b+1):
		c=c*j;
	if(a**b <= c): print("Yes");
	else: print("No");

做法1:比差

人口普查。

做法2:比商

得分$[60,100]$分不等。

$60$,直接比.

$90$,发现炸精了,于是先将后面的$[X,Y]$区间全搞上,然后再乘$[1,X)$的,这样在精度要求不高的点上可以得出正确答案。

$100$,分组。

做法3:转换

数学老师告诉我们,遇到指数可以使用$log$。

于是比较$log(X^Y)$和$log(Y!)$

继续化:$Ylog(X)$和$sumlimits_{i=1}^{Y} log(i)$

真好。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>

int main(){
#ifndef LOCAL
	freopen("yuuutsu.in" ,"r",stdin);
	freopen("yuuutsu.out","w",stdout);
#endif
	std::ios_base::sync_with_stdio(false);
	int T,a,b;
	std::cin>>T;
	while(T--){
		std::cin>>a>>b;
		double la=b*log(a),lb=0;
		for(int i=1;i<=b;i++){
			lb+=log(i);
		}
		if(la<=lb)puts("Yes");
		else      puts("No");
	}
}

T2

仔细想下……

首先如果要区间修你会想到什么呢?

线段树,树状数组……

于是漏了。

可以用$mathsf{ODT}$(滑稽

还有什么?

差分。

手摸一些样例会发现一个神奇的性质,

1图有点大,见谅。

差分上修改区间正好差$k$,于是有什么?

把差分数组每隔$k$的值加在一起是$0$

如果不是呢?那就一定非法。

于是使用$\%$法!

真巧妙啊……(别问我为什么叫 magic_arr )(译:魔法数组)

#include <iostream>
#include <cstring>
#include <cstdio>
#define N 2222222
#define LL long long

using namespace std;

int pn,k,qn;
LL pre[N],val[N];
int not0n=0;
LL magic_arr[N];

int main(){
#ifndef LOCAL
	freopen("august.in" ,"r",stdin);
	freopen("august.out","w",stdout);
#endif
	int a,b;
	cin.sync_with_stdio(false);
	cin>>pn>>k>>qn;
	for(int i=1;i<=pn;i++){
		cin>>val[i];
		pre[i]=val[i]-val[i-1];
		magic_arr[i%k]+=pre[i];
	}
	pre[pn+1]=val[pn+1]-val[pn];
	magic_arr[(pn+1)%k]+=pre[pn+1];
	for(int i=0;i<k;i++)
		if(magic_arr[i]!=0)
			not0n++;
	if(not0n)puts("No");
	else     puts("Yes");
	for(int i=1;i<=qn;i++){
		cin>>a>>b;
		int nn=int(magic_arr[a%k]!=0)+int(magic_arr[(a+1)%k]!=0);
		magic_arr[a%k]+=b;
		magic_arr[(a+1)%k]-=b;
		not0n+=int(magic_arr[a%k]!=0)+int(magic_arr[(a+1)%k]!=0)-nn;
		if(not0n)puts("No");
		else     puts("Yes");
	}
}

T3

(加载中)

原文地址:https://www.cnblogs.com/kalginamiemeng/p/Exam20191030.html