首页 > 其他分享 >CF2093 B/C题解

CF2093 B/C题解

时间:2024-11-25 21:15:15浏览次数:5  
标签:aa cout 题解 字母 2x CF2093 相邻

B. Shohag Loves Strings

注意到两个相同字母 aa 的 \(f(p)\) 为偶数,所以如果找到两个相邻相同字母输出即可。如果没有相邻相同的两个字母,则说明字符串相邻的字母一定不同,再考察三个相邻的字母的情况,发现三个字母均不同,如 abc 时 \(f(p)\) 也为偶数,又找到一种合法的情况。那么剩下的情况(既没有 aa 又没有 abc)只有形如 abababa... 的结构了,不管多长都是无解(手工模拟可以发现每多一对 ab \(f(p)\) 加 \(2\),不改变奇偶性)。

string s; cin >> s;
int n = s.size();
if (n == 1) return cout << "-1\n", void(0);
rep(i, 0, n - 2)
    if (s[i] == s[i + 1]) return cout << s[i] << s[i + 1] << '\n', void(0);
if (n == 2) return cout << "-1\n", void(0);
rep(i, 0, n - 3)
    if (s[i] != s[i + 1] && s[i + 1] != s[i + 2] && s[i] != s[i + 2])
        return cout << s[i] << s[i + 1] << s[i + 2] << '\n', void(0);
cout << "-1\n";

C1. Shohag Loves XOR (Easy Version)

注意到 \(y>2x\) 的时候,\(x\oplus y\) 的值有一个 \(x\) 消不去的高位 1,所以不可能是 \(x,y\) 的因数。因此只需要考虑 \(y\le 2x\) 的情况,可以直接从 \(1\) 到 \(\min(m, 2x)\) 枚举 \(y\)。

LL x, m, ans = 0;
cin >> x >> m;
rep(y, 1, min(2 * x, m))
    if (x != y && ((x % (x ^ y) == 0) || (y % (x ^ y) == 0))) ans++;
cout << ans << '\n';

标签:aa,cout,题解,字母,2x,CF2093,相邻
From: https://www.cnblogs.com/th19/p/18568725

相关文章

  • ZZJC新生组队赛第十一场题解
    A苏醒,浮出梦乡定义\(s_n^m\)为\(\{a_n\}\)的\(m\)阶前缀和数组第\(n\)位上的值显然\(s_n^m=s_{n-1}^m+s_n^{m-1}\)自然的,我们可以朴素的进行DP算出\(s_n^m\)的最大可能值然而计算一下复杂度却发现是\(n^2\),显然会TLE,不优化的话还会MLE但是根据输入,易得......
  • ZZJC新生训练赛第十八场题解
    链接:https://www.nowcoder.com/acm/contest/97429密码:gar615gdsr难度分类题目分值决定A-解题思路除一下比较分数大小即可A-代码实现a,b=map(int,input().split())x,y=map(int,input().split())ifa/b>x/y:print(">")elifa/b==x/y:prin......
  • 【题解】洛谷P5911 :[POI2004] PRZ
    状压dp,先预处理出来所以状态的重量和时间,然后枚举集合,然后枚举子集,子集重量合法的话就可以转移,因为这题是多个集合组成最后的集合。枚举子集。https://oi-wiki.org/math/binary-set/#__tabbed_1_1#include<bits/stdc++.h>#defineintlonglong#definelsp<<1#definersp......
  • easyui combobox 只能选择第一个问题解决
    easyuicombobox只能选择第一个问题解决问题现象在拆分开票的时候,弹出框上面有一个下拉框用于选择需要新增的明细行,但是每次只能选择到第一个选择第二条数据的时候默认选择到第一个了代码如下/*新增发票编辑窗口*/functionaddTicketDialog(){orderIte......
  • CF2023C C+K+S 题解
    前置知识:哈希/KMP题目链接:洛谷、Codeforces。有点牛的一道题。首先,既然两张图所有的环长都是\(k\)的倍数,那么考虑做一个比较厉害的处理:对图染色。令\(u\)的颜色为\(c_u\),如果有边\(u\rightarrowv\),那么\(c_v=(c_u+1)\modk\)。这样最多有\(k\)种颜色,范围是\(......
  • AtCoder ABC321F - #(subset sum = K) with Add and Erase 题解 可撤销背包
    题目链接:https://atcoder.jp/contests/abc321/tasks/abc321_f题目大意:给定大小为\(k\)的背包和\(q\)次操作,支持两种操作:插入一个大小为\(x\)的元素;删除一个大小为\(x\)的元素。每次操作后,求装满背包方案数。解题思路:可撤销背包。插入\(x\)时,fori=K->x......
  • 题解 - Game on Sum (Easy Version)
    题目,还是不挂洛谷。Alice镇楼题目大意Alice和Bob又在玩游戏。该种游戏共分为\(n\)轮,每轮中,先有一个数\(x=0\),Alice将选择\(t\isin[0,t_{max}]\),而B将会选择将\(x\)增加或减少\(t\)。在全部\(n\)轮中,B应至少有\(m\)次选择减少操作。Alice希望结......
  • 【题解】洛谷P11311、P2943: 漫长的小纸带、Cleaning Up G
    赛时不会去想dp,感觉没法转移,然后去写了贪心,然后直接假掉唐完了。为什么贪心不能做,因为多个数的话还是可能被减,\(3\)个数长度为\(11\)就可以变成\(9\),非常划算,好像很显然,但是为什么我赛时写了只会有长度\(2\)的区间唐完了。考虑dp,设\(f_i\)表示\(1-i\)的最小代价,枚举......
  • CF2038A - Bonus Project 题解
    题目传送门https://codeforces.com/contest/2038/problem/A先大致捋一下题目的含义一共有n个工程师,每个工程师完成相应的工作都有一定的奖金a,但同时也会消耗成本b,目前一共有k个工作需要做这些工程师对他们的同事很友好,他们能接受自己的总收益为0来增长经验,但不能接受自己为负......
  • 题解:[P11311 漫长的小纸带]
    P11311漫长的小纸带题意:有一个长度\(n\)的序列\(a\),将\(a\)分成若干段,使得所有段价值和最小,定义价值为一段内元素数量的平方。思路:显然能用动态规划来计算答案,设\(f[i]\)表示到第\(i\)个位置所获得的最小价值,考虑怎么转移。最直接的就是从\(1\)到\(i-1\)枚举断......