首页 > 其他分享 >cats的二分答案

cats的二分答案

时间:2024-08-12 23:28:37浏览次数:13  
标签:二分 map int long cats 答案

  • 可以证明在k次二分后区间长度最多只有两种,且差最多为1(符合直觉的结论)
  • 可以将二分视为对数的划分,而与l和r的取值无关
  • 用unordered_map时常会出现奇怪的问题,改成map就好了
点击查看代码
#include <bits/stdc++.h>
using namespace std;
long long K;
map<long long,long long>q[105];
long long dfs(long long x,long long k)
{
	if(k<0||x==0)
	{
		return 0;
	}
	if(q[k].find(x)!=q[k].end())
	{
		return q[k][x];
	}
	if(x==1)
	{
		return 1;
	}
	if(x%2==0)
	{
		return q[k][x]=dfs(x/2-1,k-1)+dfs(x/2,k)+1;
	}
	else
	{
		return q[k][x]=dfs(x/2,k-1)+dfs(x/2,k)+1;
	}
}
long long s[105];
void update()
{
	for(long long i=1;i<=K;i++)
	{
		s[i-1]+=s[i];
	}
}
long long calc()
{
	long long sum=0;
	for(long long i=0;i<=K;i++)
	{
		sum+=s[i];
	}
	return sum;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	long long T;
	cin>>T;
	while(T--)
	{
		long long l,r,sum=0;
		cin>>l>>r>>K;
		K=min(K,65ll);
		for(int i=0;i<=K;i++)
		{
			q[i].clear();
		}
		long long len=r-l+1;
		cout<<dfs(len,K)<<endl;
	}
	return 0;
}
//k的数据范围是假的

标签:二分,map,int,long,cats,答案
From: https://www.cnblogs.com/watersail/p/18355920

相关文章

  • 长度最小的子数组 | LeetCode-209 | 双指针+滑动窗口 | 前缀和+二分查找 | Java详细注
    ......
  • 2024年“研究生科研素养提升”系列公益讲座在线测评答案
    2024年研究生科研素养提升个人答案。仅供参考,不少重复,建议全题搜索b站签到同学最早14号收到证书帮忙测评:190去掉文字3308去掉文字7156我的证书:(时长15h及以上+通过在线测评=自动发,不用等14号)答案如下:......
  • [题解 hduoj-7522] 2024HDU 暑假多校7 - cats 的最小生成树
    原题链接题意有一个有重边的无向图,每次找到它的最小生成树,并删除生成树的边,直到不存在最小生成树,问被每条边在第几次被删除.思路考虑用类似Kruskal算法,但是是遍历一遍所有边,同时处理出来所有的生成树.具体这样做:如Kruskal一样,把所有边按边权排序,......
  • 860. 染色法判定二分图
    //860.染色法判定二分图.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*https://www.acwing.com/problem/content/description/862/给定一个n个点m条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数......
  • 二分图判定 代码源初级
    //1001二分图判定.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>#include<memory.h>usingnamespacestd;/*http://oj.daimayuan.top/course/14/problem/797给你一张简单无向图,你需要判断这张图是否为二分图。图用以下形式给......
  • 最新Java面试题及答案(500道)
    第一章-Java基础篇Object中有哪些方法   难度系数:⭐protectedObjectclone()--->创建并返回此对象的一个副本。booleanequals(Objectobj)--->指示某个其他对象是否与此对象“相等protectedvoidfinalize()--->当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃......
  • CSP真题答案《202309-01、02》基于Python的实现
    注意:注释在测试CSP时应全部删除!!!第一题:#键盘输入两个数以空格隔开,分别为n,mn,m=map(int,input().split())#根据n值可以循环输入n行值,得到一个列表(操作数)madenum=[list(map(int,input().split()))for_inrange(n)]#根据m值可以循环输入m行值,得到一个列表(初始......
  • 最全MySQL面试20题和答案(三)
    视图1.为什么要使用视图?什么是视图?为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。......
  • 499 道 Java 面试题 (附答案):JVM+ 分布式 + 算法 + 锁 +MQ
    Spring如何管理事务的。Spring怎么配置事务(具体说出一些关键的xml元素)。说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。Springmvc中DispatcherServlet初始化过程。netty......
  • JS基础逻辑练习—含答案解释
    1、代码下列代码,并打印结果:1)console.log(NaN+NaN)//NaN2)console.log(NaN+1)//NaN//解释:NaN(NotaNumber)表示不是一个数字,因此NaN与任何值都不相等,包括NaN本身。3)console.log(NaN==NaN)=>false//解释:isNaN()这个函数的作用是判断传入的参数是......