做题小结-1.23
我今年真的不想打铁了
https://codeforces.com/contest/2049/problem/C
这个题 我是优先队列过的 求和次数 最大
实际上 是一个结论题 很重要
if ((a + b + c) & 1) {
cout << "-1\n";
return;
}
if ((b + a) < c)
cout << a + b << nl;
else
cout << (a + b + c) / 2 ;
4 4 6 7次
4 3 5
3 3 4
3 2 3
2 2 2
1 1 2
1 0 1
0 0 0
https://codeforces.com/contest/1956/problem/C
这个题很有意思的
我一开始认为比如 n=3
我认为
1 2 3 1 1 3 1 2 3
1 2 3 ->2 2 3 -> 2 2 3
1 2 3 3 3 3 3 3 3
先把竖的小于等于n*(n+1)/2的都操作一次 然后再来一次第一行的
结果答案虽然相同 但是n=4就不同了 不信自己画下
实际上是
xxx xx1 xx1 x11 123 123
xxx xx2 123 123 123 223
123 123 123 133 133 333
就是一行一列这样操作就行
长这样 也有证明 不过懒得看了
https://codeforces.com/contest/1937/problem/C
交互题 很不错的交互题 是我的大脑旋转
看到3n我以为对于一个i最多操作三次 然后分析 > < =
无果
然后也不会做了 在我的印象里做交互都是靠猜的 这个显然不会做
碰到难的交互我就不会了
这个怎么想呢 其实是这样的 我们可以通过3个On的for循环去写这一道题
首先我们可以知道异或两个数 最大一定填满所有的1 这一点肯定的
然后关键是怎么找这两个数 这是难点 讲下雷根的做法
首先找到一个最高位的数字x 然后在找到和他|上可以等于1111的数字
再然后一个for循环找出这些数字最小的那个 为什么是最小
比如你的最高位x是10101
那这些数字可以是11111 11110 01111也可以是01010
最小的就是那个一定互补的 所以就ok啦 很有意思的一道交互题
int x=0;int y=0;
for(int i=0;i<n;i++)
{
cout<<"? "<<i<<" "<<i<<" "<<x<<" "<<x<<endl;
char ch;
cin>>ch;
if(ch=='>')x=i;
}
set<int>s;
for(int i=0;i<n;i++)
{
cout<<"? "<<i<<" "<<x<<" "<<y<<" "<<x<<endl;
char ch;
cin>>ch;
if(ch=='>'){
s.clear();
y=i;
s.insert(i);
}
else if(ch=='=')s.insert(i);
}
for(auto i:s)
{
cout<<"? "<<i<<" "<<i<<" "<<y<<" "<<y<<endl;
char ch;
cin>>ch;
if(ch=='<'){
y=i;
}
}
cout<<"! "<<y<<" "<<x<<endl;
https://codeforces.com/contest/1935/problem/C
对于这种有着两个变量的 一般解题步骤都是排序后卡住另一端 排序的那一段是有单调性的 肯定可以找到规律
然后 这一题就是最关键的是 要想到On2去枚举b数组的值
而不是On3 枚举后花一层on去放进sum 我就是这样想的 艹
就是br-bl 这一个以前做过一道题考过
然后 我们在用一个优先队列去选取最优的那几个
然后这题我犯了一个错误 超时了 就是 我把不要的元素没有及时从sum里面减去 造成了sum一直累加 执行
花了很多时间 时间来到On3logn这么大 后面及时更新了 sum就不会超时了 总体而言 这题考的很细 时间卡的很严
考了一层On的优化 和及时删除的优化 缺一个没想到都做不出来这个题 然后那个On的优化是真的好 下次我记住了 这种
需要一个On重新读入数组元素的时候 就可以直接写在之前的循环里就行 其实以前无意中会这么写 可能现在忘了
此题很好 但是感觉不像绿吧 hhh又水一个绿 睡觉了
最近也有在练琴 。弹得很好!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?