[BZOJ2299][向量]解题记录

本文介绍了一道HAOI2011竞赛中的向量问题,通过使用贝祖定理来解决如何利用给定的一对数构建特定向量的问题。文章详细解析了解题思路,并附带实现代码。

传送门bzoj2299
2299: [HAOI2011]向量
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 1209 Solved: 547
[Submit][Status][Discuss]
Description

给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y)。

说明:这里的拼就是使得你选出的向量之和为(x,y)

Input

第一行数组组数t,(t<=50000)

接下来t行每行四个整数a,b,x,y (-2*109<=a,b,x,y<=2*109)
Output

t行每行为Y或者为N,分别表示可以拼出来,不能拼出来

Sample Input
3

2 1 3 3

1 1 0 1

1 0 -2 3

Sample Output
Y

N

Y

HINT

样例解释:

第一组:(2,1)+(1,2)=(3,3)

第三组:(-1,0)+(-1,0)+(0,1)+(0,1)+(0,1)=(-2,3)


这题考数论废话,只要知道贝祖定理,就没有什么大问题了


先因为对称性,可以将所有的输入变为非负数。
实际上我们可以把向量搞成四族:(a,b),(b,a),(2a,0)或(0,2a),(2b,0)或(0,2b),向量(a,b)和(b,a)可视为最多只需用一次,如果有两次及以上的话,可拆为别的两组的和。
于是只需判断(x,y),(x + a,y + b),(x + b,y + a),(x + a + b,y + a + b)这四种情况在(2a,0)或(0,2a),(2b,0)或(0,2b)下是否有一种情况可行了。


贴代码:

#include <iostream>
#define ll long long
using namespace std;
ll x,y,z,w;
ll k;
ll gcd(ll a,ll b){
    return b == 0 ? a : gcd(b,a % b);
}                                                                                               
bool check(ll a,ll b){
    return a % k == 0 && b % k == 0;
}
int t;
int main(){
    cin >> t;
    while(t --){
        cin >> x >> y >> z >> w;
        if (x < 0) x = 0 - x;
        if (y < 0) y = 0 - y;
        if (z < 0) z = 0 - z;
        if (w < 0) w = 0 - w;
        k = gcd(2 * x,2 * y);
        if (check(z,w) || check(z + y, w + x) || check(z + x,w + y) || check(z + x + y,w + x + y)) 
            cout << "Y" << endl;
        else cout << "N" << endl;
    }
    return 0;
}

还有bzoj特别ge,所以交的时候把cin,cout改成scanf和printf就好


吐槽一下,HAOI简直是省选界的泥石流

内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值