UVALive - 6886 Golf Bot

工业互联网工控安全与工业质检AI大模型建设方案.pptx 立即下载

题目:给你N个数,再给你M个数,问这M个数中有多少数在这N个数中出现过或可以由这N个数中的某2个数相加(可重复使用)

思路:fft

代码:

//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const int maxn=1e6+50;
const double PI=acos(-1.0);
struct Complex{//复数结构体
    double x,y;
    Complex(double _x=0.0,double _y=0.0){
        x=_x;
        y=_y;
    }
    Complex operator-(const Complex &b)const{
        return Complex(x-b.x,y-b.y);
    }
    Complex operator+(const Complex &b)const{
        return Complex(x+b.x,y+b.y);
    }
    Complex operator*(const Complex &b)const{
        return Complex(x*b.x-y*b.y,x*b.y+y*b.x);
    }
};
/*
*进行FFT和IFFT前的反转变换.
*位置i和 (i二进制反转后位置)互换
*len必须是2的幂
*/
void change(Complex y[],int len){
    int i,j,k;
    for(i=1,j=len/2;i<len-1;i++){
        if(i<j) swap(y[i],y[j]);
        k=len/2;
        while(j>=k){
            j-=k;
            k/=2;
        }
        if(j<k) j+=k;
    }
}
/*
*做FFT
*len必须为2^k形式,
*on==1时是DFT,on==-1时是IDFT
*/
void fft(Complex y[],int len,int on){
    change(y,len);
    for(int h=2;h<=len;h<<=1){
        Complex wn(cos(-on*2*PI/h),sin(-on*2*PI/h));
        for(int j=0;j<len;j+=h){
            Complex w(1,0);
            for(int k=j;k<j+h/2;k++){
                Complex u=y[k];
                Complex t=w*y[k+h/2];
                y[k]=u+t;
                y[k+h/2]=u-t;
                w=w*wn;//旋转因子
            }
        }
    }
    if(on==-1)
        for(int i=0;i<len;i++)
            y[i].x/=len;
}
Complex x[maxn];
int vis[maxn];
int main(){

    int N,M,dis;
    while(~scanf("%d",&N)){
        mm(vis,0);
        int mx=1;
        for(int i=1;i<=N;i++){
            scanf("%d",&dis);
            mx=max(mx,dis);
            vis[dis]=1;
        }
        int len=1;
        while(len<2*mx+1) len<<=1;
        x[0]=Complex(1,0);
        for(int i=1;i<len;i++)
            if(vis[i]) x[i]=Complex(1,0);
            else x[i]=Complex(0,0);
        fft(x,len,1);
        for(int i=0;i<len;i++) x[i]=x[i]*x[i];
        fft(x,len,-1);
        for(int i=0;i<len;i++){
            if(i%2==0&&vis[i/2]) x[i].x++;
            x[i].x/=2;
        }
        scanf("%d",&M);
        int ans=0;
        for(int i=1;i<=M;i++){
            scanf("%d",&dis);
            if(dis>2*mx) continue;
            if((int)(x[dis].x+0.5)>=1)
                ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}


2024 《计算机网络》实验教学指导书.doc 立即下载

相关推荐

不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。

UVALive 6886 Golf Bot

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4898 简单FFT模板题 #include #include #include using namespace std; const int maxn = 100005; const do

Occult 880

单细胞转录组聚类分析R包——SC3的应用

前言 在做单细胞相关聚类分析的过程中,为了研究异质性,发现了一种专门用于单细胞转录组的聚类分析R包——SC3(single cell consensus clustering,单细胞一致性聚类)。该聚类算法发表于Nature Methods(2017),能够让单细胞RNA-seq基于转录组特征对细胞类型进行定量表征。这是一种用户友好的无监督聚类工具,它通过一致方法将多个聚类解决方案组合在一起,从而得到高精度和鲁棒性的分群结果。SC3包的官方具体使用教程见:http://www.bioconductor.or

m0_51042606的博客 5004

UVALive - 6886 Golf Bot (bitset)

题目链接: \quad UVA-6886 题目大意: \quad 给 nnn 个数 A[1,…,n]A[1,…,n]A[1, \ldots, n],mmm 个数 B[1,…,m]B[1,…,m]B[1, \ldots, m];问在 AAA 中选 111 个或 222 个数,能构成 (指相加) 多少个 BBB 中的数? 数据范围: 1≤n,m≤2e51≤Ai,Bi≤2e51≤n,m...

XzzF1024的博客 505

微信公众号数据采集实战:历史文章、互动数据与评论详情全解析

本文提供了一套完整的微信公众号数据采集实战方案,详细解析了如何通过接口调用获取公众号的历史文章列表、单篇文章的互动数据以及详细的用户评论。文章从环境准备、核心参数解析到分页逻辑、批量处理和异常处理,提供了可运行的Python代码示例,旨在帮助开发者高效、稳定地构建自动化采集工具,用于竞品分析、内容研究和舆情监控。

u5v6w7的博客 1593

MicroPython 开发ESP32应用教程 之 WIFI配网 Web页面配网 softAP 配网 web页面控制WS2812灯珠

MicroPython 开发ESP32应用教程 之 WIFI配网 Web页面配网 softAP 配网 web页面控制WS2812灯珠

weald2000的专栏 2080

UVALive6886 Golf Bot[FFT]

M - Golf Bot  UVALive - 6886  Do you like golf? I hate it. I hate golf so much that I decided tobuild the ultimate golf robot, a robot that will never miss a shot. I simplyplace it over the ball

ControlBear的博客 865

Keil 5安装教程(C51与MDK共存)

目录前言MDK的安装C51的安装安装完成后的验证新建C51工程添加C51程序文件编译测试总结 前言 本篇文章将介绍嵌入式开发工具Keil 5的安装方法,并使MDK(Microcontroller Development Kit,开发stm32时会用到)和C51(51单片机C语言软件开发系统)共存。今后使用Keil 5可同时开发51单片机程序和ARM单片机程序,便于学习与从51到32的过渡。 注: 为防止商业纠纷,本篇文章不涉及文中软件的注册破解,请支持正版。 同时为了便于今后更深入的学习,本文不会介绍软件的

xushu_me的博客 6万+

UVALive 6886 (LA 6886) Golf Bot FFT

题目大意: 就是现在给出N个数, 然后给出M个数询问这M书中有多少个可以是由这N个数中两个相加(同一个数可选两次)组成或者等于这N个数中的某一个 大致思路: 就是构造多项式相乘就可以了, FFT的最简单的应用了, 将N个数a1, a2,...an对应成多项式, 用x^k的系数是1表示N个数中有值为k的, 否则系数用0表示 然后求这个多项式的平方就可以了 代码如下: Re

Gatevin的专栏 2272

MathType公式使用技巧汇总——Mathtype怎么在word中编辑公式?论文中公式有哪技巧?有哪些注意事项?论文中的公式怎么写?

如果word中到公式编号(2-1)中间的符号如下图........ .......类似与省略号的,这是手动打的空格,公式和编号的位置都是手动敲空格操作的,这种就只是使用MathType写了公式而已,格式上还是很不方便的。**如果要修改公示,直接双击文档中的公式,就会自动弹出MathType公式编辑窗口,进行修改。如果要修改公示,直接双击文档中的公式,就会自动弹出MathType公式编辑窗口,进行修改。而第二种,是公式里面带的括号符号,他是可以随着公式结构自适应变化的。这时需要将公式插入到一行文字的某处,

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 5万+

【FFT】 UVALIVE 6886 Golf Bot

通道:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4898 题意:就是现在给出N个数, 然后给出M个数询问这M书中有多少个可以是由这N个数中两个相加(同一个数可选两次)组成或者等于这N个数中的某一个 ...

328

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1642

UVA12879 UVALive6886 Golf Bot【水题】

Do you like golf? I hate it. I hate golf so much that I decided to build the ultimate golf robot, a robot that will never miss a shot. I simply place it over the ball, choose the right direction and d...

海岛Blog 692

YOLOv11全网首发:注意力独家魔改 | 具有切片操作的SimAM注意力,魔改SimAM助力小目标检测

1)直接作为注意力使用,效果秒杀SimAM;2)高效和卷积结合,代替原始网络的卷积操作;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1570

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UVALive 6886 Golf Bot FFT

题意 给你n个数,然后再给你一个数k,问这个数是否就是那n个数中的一个,或者说这个数可以由这n个数中的两个构成(可以是自己*2) 题解: 裸的不行的FFT,直接做就好了。 #include using namespace std; const int N = 1200040; const double pi = acos(-1.0); int len; struct C

Ezereal的博客 598

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UVALive 6886 Golf Bot(FFT)

关键词:FFT 题意:b数组中有多少个数字可以由a数组中的一个或两个数相加构成?(a数组中的每个数字都各不相同)

acmer的随记 757

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

UVALive 6886 Golf Bot (FFT)

题目链接 : 点击打开链接 Do you like golf? I hate it. I hate golf so much that I decided to build the ultimate golf robot, a robot that will never miss a shot. I simply place it over the ball, choose the rig

SSimpLe_Y的博客 950

UVALIVE6886 Golf Bot (FFT)

题意:打高尔夫 给你n个距离表示你一次可以把球打远的距离    然后对于m个询问 问能否在两杆内把球打进洞 题解:平方一下就好 注意一下x0的系数为1表示打一杆    才发现数组应该开MAXN * 4 之前写的题数据有点不严谨了 #include <stdio.h> #include <algorithm> #include <iostr...

weixin_38166686的博客 130

UVALive 6886 Golf Bot 桶排+剪枝

这是一道限时15000ms的题,然后我卡了五发超时和RE。 要注意给的dj<=200000 tho: 刚写时的思路就是将机器人可以打出的距离组合后桶排存起来, 但是各种小优化后发现还是T。 最后看出在将机器人打出的距离组合前先从小到达排序,然后在组合时大于200000时跳出即可。#include <iostream> #include <cstdio> #include <cstring> #

米兰的小科比 348

UVALive - 6886 Golf Bot (FFT)

题意:给N个数a[i],再给M个数,问这M个数中有多少满足:出现在N个数中或能表示成某两个数之和. 分析:FFT求出能够生成的数的系数,给出的M个数若在生成的项中系数不为0,则计数+1 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 4e5 + 10; const ...

weixin_30776863的博客 132

UVALive_6886_Golf Bot(FFT快速傅里叶变换)

题型:数论 题意:        集合A中取1个数或者2个数,其和变成一个新的集合S。q次查询,每次查询输入一个数,问q个数中有多少个数属于集合S。       集合A元素个数2e5,q 分析: 暴力枚举O(C(n,2)+n),O(n^2)复杂度过高。 FFT统计出现了哪些数,然后直接算结果就ok,复杂度O(nlogn)。 只取1个数只需要O(n)标记一下,S1 =

Light_starlight 975

【暴力预处理+剪枝/bitset】Golf Bot UVALive - 6886

Think: 1知识点:暴力预处理+剪枝/bitset 2题意:输入n个数,查询m次,每次查询输入一个元素,判断这个元素是否可以由最初输入的n个数通过两个数相加或单独一个数得到,两个数相加时可选择同一元素进行相加vjudge题目链接以下为Accepted代码——暴力预处理+剪枝-9363ms#include <cstdio> #include <cstring> #include <algori

BlessingXRY的博客 492

UVALive - 6886 Golf Bot 多项式乘法(FFT)

题目链接: http://acm.hust.edu.cn/vjudge/problem/129724 Golf Bot Time Limit: 15000MS 题意 给你n个数,m个查询,对于每个查询,问能不能用n个数中的一个或两个(同一个数可以取两次)相加凑出来。 题解 多项式乘法,用快速傅里叶变化加速,时间复杂度:O(nlogn)。 #include<map> #include...

weixin_30498921的博客 126
上一篇: UVALive - 4671 K-neighbor substrings FFT计数
下一篇: UVA - 12298 Super Poker II FFT模板题
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值