UVA 10125 - Sumsets(POJ 2549) hash

忆阻器(二)——忆阻模拟器 除了真实的器件,我们也可以用运放和乘法器来搭忆阻模拟器。这节将介绍数学模型、matlab仿真及multisim仿真。 一、数学模型 忆阻分为磁控和荷控两种,这里介绍三次非线性磁控忆阻模型: {I=W(φ)VW(φ)=a+3bφ2dφdt=V \begin{cases} I=W(\varphi)V \\ W(\varphi)=a+3b \varphi ^2\\ \frac{d \varphi }{dt}=V \end{cases} ⎩⎪⎨⎪⎧​I=W(φ)VW(φ)=a+3bφ2dtdφ​=V​ 这里的WWW 阅读详情

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1066

http://poj.org/problem?id=2549

题目大意:

给定一个整数几何S,找出一个最大的d,使得a+b+c=d,其中a,b,c,d是S中不同的元素。

S的个数最大为1000。

思路:

直接暴力枚举a,b,c,d必挂。

上面的式子移向得:a+b=d-c。我们先预处理所有的和,并且插入Hash表。

然后枚举d和c,看是否在Hash表中是否存在。

若存在且不同,则更新d。

类似的题目还有:

HDU 1496 Equations hash HDU上排名第一!

POJ 2785 4 Values whose Sum is 0 Hash!

HDU 1407 测试你是否和LTC水平一样高 枚举、二分、hash

PS:

一开始这里的

if(data[i].sum!=sum || data[i].a==a ||data[i].a==b ||data[i].b==a ||data[i].b==b )

data[i].b==b 然后WA到哭了。。呜呜呜呜,后来发现想撞死。。来去吃点好吃的安慰一下我受伤的心灵。哈哈


0.072S,让暴力枚举的见鬼去吧~

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=1024;
const int mod=1<<18;
int x[MAXN],head[mod],len;
struct data
{
	int a,b,sum;
	int next;
}data[MAXN*MAXN];

inline int gethash(int x)
{
	if(x<0) x=-x;   //变为正的
	return (x) & (mod-1);
}
void insert(int a,int b,int sum)
{
	int cur=gethash(sum);
	for(int i=head[cur];i!=-1;i=data[i].next)
	{
		if(data[i].sum==sum && data[i].a==a && data[i].b==b)
			return;
	}
	data[len].a=a;
	data[len].b=b;
	data[len].sum=sum;
	data[len].next=head[cur];
	head[cur]=len++;
}
bool search(int a,int b,int sum)
{
	int cur=gethash(sum);
	for(int i=head[cur];i!=-1;i=data[i].next)
	{
		if(data[i].sum!=sum ||	data[i].a==a ||	data[i].a==b ||	data[i].b==a ||	data[i].b==b )
			continue;
		return true;
	}
	return false;
}
int main()
{
	int n;
	while(~scanf("%d",&n),n)
	{
		len=0;
		memset(head,-1,sizeof(head));

		for(int i=0;i<n;i++)
			scanf("%d",&x[i]);

		for(int i=0;i<n;i++)
			for(int j=i+1;j<n;j++)	
				insert(i,j,x[i]+x[j]);
				//	insert(x[i],x[j],x[i]+x[j]);这样是错的,应该用下标来判断是否同一个。
				//因为元素可能相同。

		bool ok=false;
		int ans=-999999999;
		for(int i=0;i<n;i++)
		{		
			for(int j=0;j<n;j++)
			{
				if(i==j) continue;
				if(search(i,j,x[i]-x[j]))
				{
					ok=true;
					ans=max(ans,x[i]);
					break;
				}
			}
		}
		if(ok) printf("%d\n",ans);
		else puts("no solution");
	}
	return 0;
}



C# Blazor Server工业监控Web UI:实时数据推送、历史曲线、报警记录,跨浏览器访问(踩坑总结+生产可用) 坑点现象解决方案StateHasChanged()太频繁服务器CPU占用高,浏览器卡顿别100ms刷新一次,1秒刷新一次足够并发高时服务器卡多个用户同时访问,服务器响应慢用Redis做分布式缓存,或者加服务器做负载均衡断线重连后数据丢失浏览器刷新后,实时数据不更新用InfluxDB存历史数据,刷新后重新查询工业现场网络不稳定Blazor Server频繁断线用SQLite本地缓存,断网时数据不丢,联网后补发历史曲线查询慢查询过去7天的数据,要等很久。 阅读详情

相关推荐

matplotlib三维画图之观察博弈论混合策略下纳什均衡点

参考链接: 博弈论入门20讲之第16讲-猜谜游戏-散户如何赢庄家 游戏背景: 我的期望是: 你的期望是: 使用Python的matplotlib画图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) X = np.linspace(0, 1, 100) Y = np.linspace(0, 1,

敲代码的小风 1257

uva-10125-暴力枚举

uva-10125-暴力枚举 题意:给一个集合,求d=a+b+c,d最大且a,b,c,d下标不能是同一个 解题思路 a+b=d-c 另外,可以OJ看下0ms大佬们的代码. #include "pch.h" #include <string> #include<iostream> #include&...

weixin_34177064的博客 185

MEG预处理-Brainstorm

Brainstorm下载和安装 去Brainstorm官网进行下载:打开网页后,点击左侧Download;在跳出来的界面中进行简单的注册,注册完成后可以进行下载 解压后得到“brainstorm3”的文件夹,里面包含Brainstorm工具包的所有文件,把这个文件夹放在某个路径如"E:\matlab_tools\brainstorm3"即可 同样在某个路径建立空的文件夹命名为:brainstorm_db用于工具包运行过程中自动存储生成的文件,所以这个文件中生成的数据不要手动移动删除 在Matlab中,把.

AxeChen的博客 6119

AOAPC I: Beginning Algorithm Contests 题解

AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual Judge Volume 0. Getting Started UVA10055 Hashmat the Brave Warrior【水题】 - 海岛Blog - 优快云博客 UVA...

海岛Blog 1327

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 853

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

让您从源码下载到本地运行一步到位!此外,文中还将附带详细代码解析与操作步骤,即便没有开发经验,也能轻松完成二开与定制。数据库是棋牌游戏中极为关键的组成部分,用于存储用户信息、乐豆余额、游戏记录、提现申请等数据。以下是部分核心数据表结构示例,便于存储用户信息与游戏记录。AI模块能够控制游戏中的胜率,常用于调节玩家体验。防沉迷功能旨在限制未成年人游戏时间。的完整搭建流程,特别适合。首先,获取七星棋牌源码。本教程将为您详细讲解。

aa2031171的博客 7770

poj 2549 Sumsets(hash)

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23666 a+b+c=d 转化: a+b=d-c。这就变成了查找问题。1000*1000/2=500000,所以需要5e5大的空间装散列表。下面用hash拉链法和开放地址法来实现: 拉链法,存储结构即用到了链式前向星的思想。 #include #include #

theArcticOcean 913

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2404

POJ 2549 Sumsets hash

G - Sumsets Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu SubmitStatus Description Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c,

Katapeltes 657

5分钟搞定!用扣子空间LinkReaderPlugin快速搭建网页内容抓取机器人(附Python复现代码)

本文详细介绍了如何利用扣子空间的LinkReaderPlugin快速搭建网页内容抓取机器人,仅需5分钟即可完成配置。通过Python复现代码和可视化工作流,开发者可以轻松实现智能网页抓取,提升数据采集效率。文章还探讨了与RAG工作流的集成方案及性能优化技巧,适用于金融监控、电商追踪等多种场景。

study的专栏 1092

Windows配置L2TP/IPsec连接

Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。

m0_61806534的博客 1666

Uva10125/POJ2549——Sumsets(中途相遇法,hash)

A. Sumsets Time Limit: 3000ms Memory Limit: 131072KB 64-bit integer IO format: %lld      Java class name: Main Submit Status [PDF Link] Problem C - Sumsets Given S, a set of

Reverie 620

基于YOLOv8深度学习的火焰与烟雾检测系统详解:UI界面 + YOLOv8 + 数据集的实现

通过自动化检测火焰和烟雾,可以提高响应速度,减少潜在的火灾损失,保障人身和财产安全。此外,应用还会显示标记了检测框的视频画面,方便用户直观了解检测效果。同时,前端界面将使用Streamlit来实现,因其可以快速搭建交互式应用,适合我们的需求。要训练一个有效的火焰和烟雾检测模型,我们需要一个包含火焰和烟雾图片的数据集。为了保证模型的准确性和泛化能力,建议收集至少500张火焰和烟雾的图片,保证数据的多样性和代表性。训练过程中,模型会输出每个Epoch的训练损失和验证准确率,便于我们监控模型的学习情况。

YOLO 1321

UVa 10125 - Sumsets

题目链接: UVa : http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1066 poj :   http://poj.org/problem?id=2549 类型: 哈希, 二分查找 原题: G

D_Double's Journey 2687

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【哈希】1551:Sumsets

1551:Sumsets查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S.输入Several S, each consisting of a...

cym的博客 779

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

POJ2549【hash分离链接法】

题意: 给n个不同的数,求一个4个数(a,b,c,d)的组合满足a+b+c=d;求最大的d。 思路: 没想到可以用hash搞/ 这个就是数据结构里的分离链接法~ 解决hash冲突的方法:将所有关键字为同义词的结点链接在同一单链表中。 a+b+c=d转化成a+b=d-c; 先将所有的a+b hash掉。 然后用 d-c 去找。 复杂度n^2*HASH; #includ...

weixin_30550271的博客 192

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

对于给定的整数集合S,求出最大的d,使得a+b+c=d。

对于给定的整数集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都属于S。集合的元素个数小于等于2000个,元素的取值范围在[-2^28,2^28 - 1],假定可用内存空间为100MB,硬盘使用空间无限大,试分析时间和空间复杂度,找出最快的解决方法。 提示:两两相加转为多项式乘法,比如(1 2 4 6) + (2 3 4 5) => (x + x^2 + x^4 + x^6)

Edwards_June的专栏 2617

poj Sumsets 2549 (二分+转换)

Sumsets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9369   Accepted: 2564 Description Given S, a set of integers, find the largest d such that a + b + c =

yanghui07216的博客 493

POJ 2549 Sumsets

题目 题目大意 给定一组整数,求最大的d,使得a + b + c = d,其中a、b、c和d是S的不同元素。 1 <= n <= 1000,表示以S为单位的元素数,后跟S元素,每行一个。 S的每个元素都是介于-536870912和+536870911之间的不同整数。 最后一行输入包含0。 对于每个S,一行包含d,或者一行包含“no solution”。 题目分析 先来他...

xxxLJYing的博客 420

uva10125 (中途相遇法)

a + b = d - c; 枚举a  + b 加入哈希表,再枚举 d - c 在哈希表中查找,并且四个数字不能重复 /*********************************************** * Author: fisty * Created Time: 2015/3/17 22:36:27 * File Name : uva10125.cpp ******

fisty 1197

POJ 2549 Sumsets hash值及下标

题目大意:找到几何中的4个数字使他们能够组成 a+b+c=d ,得到最大的d值 我们很容易想到a+b = d-c 那么将所有a+b的值存入hash表中,然后查找能否在表中找到这样的d-c的值即可 因为4个数字都不能相同,那么我们同时要在hash表中记录相加两个数的下标,然后查找的时候还要进行下标判断 这里用二分查找也可以,但是能用hash还是hash快地多了 这...

weixin_30696427的博客 156

UVA 10125 Sumsets 技巧性的枚举

Problem C - Sumsets Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S. Input Several S, each consisting of a line containing a

Remilia's 2820

UVa 10125 - Sumsets (中途相遇法 hash)

Sumsets Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [Submit]   [Go Back]   [Status]   Description     Problem D - Find D Users are

zhaosdfa 743

uva 10125

#include #include #include using namespace std; int d[1010]; int main() { int n; while(~scanf("%d",&n)&&n) { for(int i=0;i<n;i++) scanf("%d",&d[i]); sort(d,d+n); int flag=0; for(int i=n-1

sky_zdk的博客 338

POJ 1961 Period G++ KMP next数组 背

#include <iostream> #include <string> using namespace std; //英语 看博友分析 抄博友程序 KMP next数组 背 string s; int nex[1000008]; void get_next() { int i=0; nex[i]=-1; int j=-1; while(i<s.size()) { if(j==-1||s[j]==s[i]) { i++; j...

woniupengpeng的专栏 215

Sumsets uva+hash表的应用

Sumsets Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S. Input Several S, each consisting of a line containing an integer 1 <=

u012870383的专栏 629
上一篇: UVA 11796 - Dog Distance 向量的应用
下一篇: ZOJ 1586 QS Network MST prim水题
hr_whisper
博客等级 码龄14年 132粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值