做题小结-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) / 24 4 6 74 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又水一个绿 睡觉了
最近也有在练琴 。弹得很好!

posted @   想念不动声色  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示