首页 > 其他分享 >[CF102586A] Cookies

[CF102586A] Cookies

时间:2023-12-19 21:23:53浏览次数:28  
标签:Cookies frac log min max 复杂度 CF102586A 2M

结论1:如果曲奇 \(c\) 当 \(k=x\) 时会被剩下,那么当 \(k=x+1\) 时亦会被剩下。

感性理解即可。显然初始集合越大,曲奇越不容易被换走。

结论2:原问题等价于以下问题:每次给出一个曲奇 \(c\),遇到 \(S_i=\)'S' 且 \(c>B_i\) ,或 \(S_i=\)'B' 且 \(c<B_i\) 就交换 \(c,B_i\)(交换会保留到下次操作),最终的 \(c\) 就是本次答案的增量。

假设说这次将 \(A\) 换到了 \(B\) 的位置上,下一次 \(B\) 也一定可以被 \(A\) 换走,只是可能有更优的决策 \(C\)。既然 \(C\) 比 \(A\) 要优,先用 \(A\) 换掉 \(B\),再用 \(C\) 换掉 \(A\) 和直接用 \(C\) 换掉 \(B\) 本质相同,对原问题答案自然没有影响。

转化后我们不难发现 \(S_i\) 具有可并性。对于一段连续的 \(S_i=\)'S',即相当于尝试用 \(x\) 换掉这一段的 \(\min\),反之亦然(不妨分别称之为 \(\min\) 段和 \(\max\) 段)。

结论3:若相邻的 \(\min,\max\) 段 \(X,Y\) 满足 \(\min\{X\} \geq \max\{Y\}\) ,两个段交换不影响答案。

按 \(x\) 大小讨论一下即可,注意到当段数大于等于 \(2\) 时,每次交换段数至少减一。

结论4:若相邻的 \(\min,\max\) 段 \(X,Y(\min\{X\}<\max\{Y\})\) 大小分别为 \(|X|,|Y|\),最多经过 \(|X|+|Y|\) 次后即有 \(\min\{X\} \geq \max\{Y\}\)。

同样按 \(x\) 大小讨论一下即可。

实际上,直接实现上述算法便可通过本题。具体复杂度分析如下:

假设一共有 \(L\) 对匹配段,根据抽屉原理必然至少存在 \(\frac{L}{2}\) 对匹配段满足 \(|X_i|+|Y_i| \leq \frac{2M}{L}\),也就是说每执行 \(\frac{2M}{L}\) 次操作段数就会减半,共会减半 \(\log M\) 次,同时由于每次复杂度不超过 \(\frac{2M}{L} \times L =2M\),总复杂度即 \(O(M \log M)\)。

于是本题复杂度取决于合并堆的方式,使用可并堆可以做到 \(O(M \log M)\),或直接对 priority_queue 启发式合并,复杂度为 \(O(M \log^2 M)\)。

标签:Cookies,frac,log,min,max,复杂度,CF102586A,2M
From: https://www.cnblogs.com/Hypercube07/p/17914769.html

相关文章

  • Cookies和Session
    Cookies和Session都是为了解决HTTP协议无状态性而引入的技术,它们用于在多个请求之间保持用户状态。Cookies存储在客户端;Session存储在服务器端;两者怎么联系使得http保持了用户状态呢?其实服务器首先创建session,生成sessionID,并通过cookie返回给了浏览器,这样浏览器就获得了sessi......
  • Python中用requests处理cookies的3种方法
    在接口测试中,大多数项目的接口是需要登录后进行操作的,经常用到requests库进行模拟登录及登录后的操作,下面是我不断踩坑后总结出来的关于登录凭证cookies的3种操作方法。一.用requests.utils.dict_from_cookiejar()把返回的cookies转换成字典1.处理cookies:importreques......
  • postman 出现Enable JavaScript and cookies to continue 如何反爬(js反爬)
    网页无法F12,禁止调试出现debug怎么办直接F8禁用,ctrl+F8开启调试断点网站禁止ip访问,并且关闭了icmp回包,调试最好禁用缓存,以便实时更新用postman单独访问首页的index的首页也是无法获取网页内容考虑网页使用js进行跳转实例:比如使用postman请求https://www.phind.com/简......
  • 212-c# url下载pdf,url请求,有参数,且携带cookies
    usingSystem;usingSystem.Net;usingSystem.Net.Http;usingSystem.Net.Http.Headers;usingSystem.Threading.Tasks;classProgram{staticvoidMain(){//设置要下载的PDF文件的URLstringpdfUrl="https://example.com/path/to/your/pdf......
  • selenium保存cookies并使用
    importimportjsonimporttimefromseleniumimportwebdriver保存browser=webdriver.Firefox(executable_path=r"C:\MyProgrames\geckodriver.exe")#根据实际修改,启动自己的webdriverdeflogin_for_cookies(url):browser.get(url)input("登陆成功后回车以......
  • FastAPI学习-21.response 参数-设置响应Cookies
    前言可以在 路径函数 中定义一个类型为 Response的参数,这样你就可以在这个临时响应对象中设置cookie了。response参数设置cookiesfromfastapiimportFastAPI,Responseapp=FastAPI()@app.post("/cookie-and-object/")defcreate_cookie(response:Response):res......
  • php之Cookies和Sessions
    PHPCookies1.什么是Cookie?cookie常用于识别用户cookie是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送cookie。通过PHP,您能够创建并取回cookie的值2.如何创建cookie?setcookie()函数用于设置cookie。setcookie()函数......
  • jmeter 添加信息头管理器 设置cookies
    第一步:抓包找到信息头 ’ 第二步:设置http信息头管理器 有坑----避免跳入使用cookies管理器,它和信息头管理器不是一个东西  结果 完结撒花~~~......
  • 改进了headers的爬虫(Cookies)
    importurllib.requestfromlxmlimportetreedefcreate_request(page):ifpage==1:url='http://www.chinaeol.net/hjxw/gnxw'else:url='http://www.chinaeol.net/hjxw/gnxw/index_'+str(page)+'.shtml�......
  • FastAPI学习-21.response 参数-设置响应Cookies
    前言可以在 路径函数 中定义一个类型为 Response的参数,这样你就可以在这个临时响应对象中设置cookie了。response参数设置cookiesfromfastapiimportFastAPI,Responseapp=FastAPI()@app.post("/cookie-and-object/")defcreate_cookie(response:Response):......