20180513测试

这次竟然没爆炸

T1立方数

给出T个数p询问是否是立方数。

直接一个二分就OK

(然后就差点忘记了long long)

while (l+1<r)
{
  long long mid=(l+r)>>1;
  if (hzk(mid)<x) l=mid;
   else r=mid;
}

T2立方差

给出T个质数p询问是否可以表示成立方差的形式

这里先对立方差a^3-b^3进行因式分解,得到:

(a-b)(a^2+ab+b^2)

由于p是质数,所以两个因式(a-b)和(a^2+ab+b^2)其中一个为1,另一个为p

当a-b=1时

则(a^2+ab+b^2)=p

当(a^2+ab+b^2)=1时

扫描二维码关注公众号,回复: 1099519 查看本文章

不可能的,懒得证

所以根据a-b=1得a=b+1

由于(a^2+ab+b^2)=p

所以a或者b最多也就到p的开方小一点(不用说吧)

所以就枚举a或者b到p的开方就行

T3梦境

m个不同面值的金币,问能满足可求和1-n所有数的最小m和方案数

第一问二进制拆,懒得说

第二问DP,设三个状态,然后滚掉一维就星

T4水题

将两组都按照x值为第一关键字排序,开一个multiset各种存就星

 
 
	for (int i=1;i<=n;i++)
	 {
	 	while (j<=n && a[i].x>=b[j].x)
	 	 {
	 	 	q.insert(b[j++].y);
	 	 }//插入multiset
	 	if (q.empty()) continue;
	 	multiset<int> :: iterator it=q.upper_bound(a[i].y);//找数
		if (it==q.begin()) continue;
		it--;
		ans++;
		q.erase(it);
	 }

T5猜数字

不会滚

T6括号

瞎搞,开一个t,有左括号就+1,有右括号就-1,如果会减出负数,说明括号不匹配,改就星,答案随便统计。

	if (s[i]==')')
	  	 {
	  	   if (t>0) t--;
	  	    else
	  	   {
	  	   	t++;
	  	   	ans++;//并不直接是答案
	  	   }
	  	 }
	  	else t++;

猜你喜欢

转载自blog.csdn.net/fsl123fsl/article/details/80306979