首页 > 其他分享 >两道倍数codeforces 题 —— 2倍与加减1相关

两道倍数codeforces 题 —— 2倍与加减1相关

时间:2023-05-11 18:55:16浏览次数:49  
标签:题目 problemset com codeforces 加减 倍数 代价 dp

目录
题1 https://codeforces.com/problemset/problem/520/B
题2 https://codeforces.com/problemset/problem/710/E

题目大意

题1

一个设备可支持两种操作:
将当前数 \times 2 。
将当前数 -1−1 。
另外,当设备中的数不是正数时,设备将会崩溃。
现在给出两个数 n,m ,问你需要多少次操作才能将 n 变成 m 。

题2

给定正整数 n, x, y,你要生成一个长度为 n 的字符串,有两种操作:
添一字符或删去一个原有字符,代价为 x;
将已有字串复制粘贴一次(翻倍),代价为 y。
求最小代价。

思路

题1

1,让我们先来看第一题
要让我们分类讨论。因为都是正数

  1. 所以当 n>m 时,只有n--才可以到达m。 这个时候是不可能再有n*2这个步骤的
  2. 当n<m时。n*2 与 n-- 难于判断,正难则反
    若需要将 m->n ,则说明啥,m可以除2时,就除以2,如果不能,那我就再加1,然后除2。只有这两个步骤才能到达n
    那存不存在 我先加两次1,然后再除以2,那肯定没有必要啊,这个操作数会大于 n/2 再加1 的两次操作
    明显贪心
题2

第2题,题目是:
0->n 其中inc/dec 为 x代价 =2 为 y代价
跟1题的不同点在于
1,0<n
2, 可以加1,也可以减1
跟第1题相比,明显这题是使用dp,而且很容易陷入完全背包解法。而实际上可以利用:
2可以分两种情况讨论,当i为偶数/奇数时
偶数:dp[i] = max(dp[i/2]+y,dp[i-1]+x);
奇数:dp[i] = max(dp[(i+1)/2]+x+y,dp[i-1]+x);
其它情况,代价更高,故不需要考虑。

总结

当看到 *=2, +-1 这些条件时,就需要想到通过奇偶去分别讨论。

标签:题目,problemset,com,codeforces,加减,倍数,代价,dp
From: https://www.cnblogs.com/kingbuffalo/p/17391933.html

相关文章

  • Codeforces 543E - Listening to Music(分块)
    根号log做法。能过CF的数据,但过不了校内模拟赛的数据/tuu考虑从\(f(i,x)\)到\(f(i+1,x)\)的变化在哪里:少了个\(a_i\)多了个\(a_{i+m}\),因此显然只有\(x\)在它俩中间才有\(f(i,x)\nef(i+1,x)\),即:\[f(i+1,x)-f(i,x)=\begin{cases}-1&(a_i<x\lea_{i+m})\\1&(a_{i+m......
  • # Codeforces Round 872 (Div. 2) 题解
    CodeforcesRound872(Div.2)题解A.LuoTianyiandthePalindromeString略B.LuoTianyiandtheTable略C.LuoTianyiandtheShow略D1.LuoTianyiandtheFloatingIslands(EasyVersion)题意在树上随机撒\(k(k\leq3)\)个关键点,规定一个点是好的当且仅当这个......
  • Codeforces Round 683 (Div. 1, by Meet IT) ABCDF题解
    F和D都在ABC上做过类似的,但是没打好,道心破碎。。。。A.Knapsack若物品质量在[(w+1)/2,w]之间做完了否则一直贪心加voidsolve(){intn;llw;cin>>n>>w;intc=n;for(inti=1;i<=n;i++){cin>>a[i];if(a[i]>w)c--;}if(!c){......
  • 增长率结合倍数的考法
    倍数=r+1,不常考,所以很容易忽视特别的:间隔倍数=r间+1这里注意表达:增长7.2倍,则r=7.2,记住即可,且注意带正负号。......
  • Codeforces [Hello 2020] 1284F New Year and Social Network(图论匹配推理+lct)
    https://codeforces.com/contest/1284/problem/F题目大意:有两个大小为n的树T1和T2.T2中的每条边(u,v)可以匹配T1中u到v路径上的所有边。求最大匹配,并给出方案。\(1<=n<=250000\)题解:首先你需要观察样例大胆猜想一定有完美匹配。考虑T1中的一个叶子x和它的父亲y。显然的是,从T2中随......
  • Codeforces F. Bits And Pieces(位运算)
    传送门.位运算的比较基本的题。考虑枚举\(i\),然后二进制位从大到小考虑,对于第\(w\)位,如果\(a[i][w]=1\),那么对\(j、k\)并没有什么限制。如果\(a[i][w]=0\),那么我们希望\((a[j]~and~a[k])[w]=1\),结合前面的限制,就是给定\(x\),问有没有\(x∈a[j]~and~a[k](i<j<k)\)。那么这应该是做一......
  • Codeforces Round 872 (Div. 2) A-D
    比赛地址A.LuoTianyiandthePalindromeString题意:给一个回文串,求最长的非回文子串的长度Solution判一下回文串是不是由相同的字母组成的,如果是的那么无解,如果不是答案就是len-1voidsolve(){ strings;cin>>s; intlen=s.length(); intsum=1; for(inti=1;i<s.leng......
  • Codeforces Round 872 (Div. 1 & Div. 2)
    这场寄大了。Mypredictorsay-101pts。https://codeforces.com/contest/1824https://codeforces.com/contest/18252A.LuoTianyiandthePalindromeString因为给出的\(s\)是一个回文串,所以答案只可能是\(-1\)或者\(n-1\),只需要看一下删掉哪一个即可,然后判定,这些都......
  • CodeForces - 631A Interview (思想)水
    TimeLimit: 1000MS MemoryLimit: 262144KB 64bitIOFormat: %I64d&%I64uCodeForces-631AInterviewSubmit StatusDescriptionBlakeisaCEOofalargecompanycalled"BlakeTechnologies".Heloveshiscompanyverymuchandhethinksthathi......
  • CodeForces - 630F Selection of Personnel (组合数学)
    TimeLimit: 500MS MemoryLimit: 65536KB 64bitIOFormat: %I64d&%I64uCodeForces-630FSelectionofPersonnelSubmit StatusDescriptionOnecompanyofITCitydecidedtocreateagroupofinnovativedevelopmentsconsistingfrom 5 to 7 peopleandhir......