uvalive 6955 Finding Lines rand() 随机算法

Codeforces 788D Finding lines 交互题 题意 平面上有若干条水平或竖直的直线。现在每次可以询问某个点到所有直线的最短距离,要求确定所有直线的坐标。 直线数量≤104,|坐标|≤108,询问次数≤3∗105直线数量≤104,|坐标|≤108,询问次数≤3∗105直线数量\le10^4,|坐标|\le10^8,询问次数\le3*10^5 分析 先随机出一个数ttt,满足第ttt行和第ttt列都没有直线。 接着设x=−108x=... 阅读详情

【题目链接】点击打开链接

【题意】给了两个数n,p。问在平面上是否存在一条直线经过ceil(n*p/100)个点。

【解题方法】随机算法。由于O(n*n)显然会超时,我们这里应用随机算法来找直线。为什么可以用随机算法呢?这里p<=20,所以选取两个点在一条直线上的概率为1/25。也就是选取两个点不在一条直线上的概率为24/25,那么经过多次随机函数之后,这个值为(24/25)^k,k取大之后,这个值趋近于e-k次方,即是(24/25)^25*k~e^(-k)。所以就可以大胆随机,不用怕WA了。 更细讲解吗可以看这里:点击打开链接


//
//Created by just_sort 2016/1/2
//Copyright (c) 2016 just_sort.All Rights Reserved
//

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/hash_policy.hpp>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <cmath>
#include <cstdio>
#include <time.h>
#include <cstdlib>
#include <cstring>
#include <sstream> //isstringstream
#include <iostream>
#include <algorithm>
using namespace std;
using namespace __gnu_pbds;
typedef long long LL;
typedef pair<int, LL> pp;
#define REP1(i, a, b) for(int i = a; i < b; i++)
#define REP2(i, a, b) for(int i = a; i <= b; i++)
#define REP3(i, a, b) for(int i = a; i >= b; i--)
#define MP(x, y) make_pair(x,y)
const int maxn = 100010;
const int maxm = 2e5;
const int maxs = 10;
const int INF = 1e9;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>order_set;
//head
int n; double p;
int x[maxn], y[maxn];

int main()
{
    int t;
    while(scanf("%d", &n) != EOF){
        scanf("%lf", &p);
        t = n * p;
        srand(time(0));
        REP1(i, 0, n) scanf("%d%d", &x[i], &y[i]);
        bool ok = 0;
        if(n <= 2){
            printf("possible\n");
            continue;
        }
        int cnt;
        REP1(i, 0, 400){
            cnt = 2;
            int u = rand() % n, v;
            while(1){
                v = rand() % n;
                if(u != v) break;
            }
            REP1(k, 0, n){
                if(k == u || k == v) continue;
                int tt = (x[k] - x[u]) * (y[v] - y[u]) - (y[k] - y[u]) * (x[v] - x[u]);
                if(tt == 0) cnt++;
                if(cnt * 100 >= t) ok = 1;
                if(ok) break;
            }
            if(ok) break;
        }
        if(ok) printf("possible\n");
        else printf("impossible\n");
    }
    return 0;
}


产业园区运营负责人如何实现创新资源的系统化配置?.docx 产业园区运营负责人如何实现创新资源的系统化配置? 立即下载

相关推荐

高校技术转移办公室人员需要哪些材料完成成果转化项目审核?.docx

高校技术转移办公室人员需要哪些材料完成成果转化项目审核?

F - Finding Lines UVALive - 6955 (随机数优化,检测)

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4967 判断是不是存在有百分之p的点在一条直线上。 嗯,学习了随机化优化的算法。 #include using namespace std; const int M

樱花满地集于我心,楪舞纷飞祈愿相随 610

状态估计【扩展卡尔曼滤波算法的神经网络训练】BP神经网络、扩展卡尔曼滤波EKF+BP、粒子滤波PF轨迹估计研究(Matlab代码实现)

【状态估计】【扩展卡尔曼滤波算法的神经网络训练】BP神经网络、扩展卡尔曼滤波EKF+BP、粒子滤波PF轨迹估计研究(Matlab代码实现)内容概要:本文主要介绍了基于变频控制的多相交错LLC谐振变换器闭环仿真研究,重点探讨了多相交错并联技术在降低输出电流纹波和提升功率容量方面的优势,分析了交错角对纹波抵消的影响以及均流问题的成因。针对变频控制带来的非线性特性,文章采用扩展描述函数(EDF)建立小信号模型,用于指导PID控制器的设计,并验证其在稳态和动态工况下的控制性能。通过Simulink仿真平台对闭环系统进行建模与测试,考察了启动过程、负载阶跃响应及频率调节的平滑性,结果表明所设计的控制系统具有良好的稳态精度和动态响应能力。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生及从事电源系统研发的工程技术人员。; 使用场景及目标:①掌握多相交错LLC谐振变换器的工作原理与建模方法;②学习变频控制下非线性系统的建模与PID环路设计技巧;③应用于高效率、低纹波开关电源的仿真设计与优化。; 阅读建议:建议结合文中提供的仿真模型与参数设置进行实践操作,重点关注EDF建模过程与控制器参数整定方法,通过对比不同交错角下的仿真结果加深对纹波抑制机理的理解。

uva Finding Lines

Finding Lines 题目大意:给你n个点和一个概率,再给出n个坐标,问任意两点构成的直线,这条直线包含的点的个数比上n大于等于这个概率就输出possible,否则输出impossible。 解题思路:n的范围是10的5次方,时间是20000毫秒,暴力枚举的时间复杂度是O(n^3),最大是10的15次方。所以枚举存在问题。于是就采用随机枚举的办法,写个随机数生产器,随机出1000(也可以

提拉米苏的博客 356

论文复现基于物理信息神经网络预测2D3D非稳态温度场及热源(Python代码实现)

内容概要:本文详细介绍了基于物理信息神经网络(PINN)预测2D和3D非稳态温度场及热源的Python代码实现,旨在复现相关科研论文。该方法将物理定律嵌入神经网络结构中,利用偏微分方程描述传热过程,在无需大量标注数据的前提下,求解复杂的非稳态传热问题,实现对温度场时空演化和内部热源分布的高精度预测。文中系统阐述了PINN的模型构建原理、损失函数设计策略(包含初始条件、边界条件与控制方程的物理约束)、网络训练流程以及数值实验结果,充分展示了其在科学计算与工程仿真中的强大潜力与良好泛化能力。; 适合人群:具备一定Python编程基础和深度学习理论知识,熟悉偏微分方程与传热学基本概念,对科学计算、物理信息建模、智能仿真等方向感兴趣的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于复现并深入理解PINN在非稳态热传导问题中的具体应用;②为从事热管理、材料科学、能源系统、航空航天等领域的研究人员提供可扩展、可定制的开源代码框架;③辅助高校教学与科研实践,帮助学生掌握物理信息驱动的机器学习建模方法及其在实际工程问题中的实现路径。; 阅读建议:建议读者结合文中提供的完整代码与详细注释,使用主流深度学习框架(如TensorFlow或PyTorch)进行动手实践,重点理解物理约束如何通过损失项融入网络训练过程,并尝试在不同几何构型、边界条件或热源形式下进行模型验证,以深入掌握PINN的设计思想与泛化机制。

无源项一维波动问题的PINN的Python torch实现

内容概要:本文详细介绍了无源项一维波动问题的物理信息神经网络(PINN)的Python实现方法,基于PyTorch框架构建神经网络模型,将波动方程作为物理约束嵌入损失函数中,实现对偏微分方程的无网格数值求解。文中系统阐述了PINN的核心原理、网络结构设计、初始与边界条件的处理策略,以及利用自动微分技术高效计算高阶偏导数的方法。该方法摆脱了传统数值方法对网格划分的依赖,能够以端到端的方式逼近复杂物理问题的解,展现出在科学计算与工程仿真领域的强大潜力,尤其适用于高维或多物理场耦合问题的智能求解。; 适合人群:具备深度学习基础、偏微分方程知识及Python编程能力的研究生、科研人员,以及从事科学计算、工程仿真与人工智能交叉领域研究的专业技术人员。; 使用场景及目标:①掌握物理信息神经网络(PINN)求解偏微分方程的理论与实现流程;②完成无源项一维波动方程的神经网络建模、训练与结果可视化;③将该方法迁移应用于热传导、流体力学、电磁场等其他物理系统的建模与仿真研究; 其他说明:代码实现强调物理定律与数据驱动的深度融合,建议读者在学习过程中结合PyTorch框架特性与微分方程理论,通过调整网络层数、激活函数、损失权重和优化器参数等方式,探究不同配置对模型收敛速度与求解精度的影响,以深化对PINN工作机制的理解。

Uvaoj 6955 Finding Lines (随机

随机算法 题目链接 https://icpcarchive.ecs.baylor.edu/external/69/6955.pdf#include <bits/stdc++.h> using namespace std; const int N = 1e5+10; struct node{ int x, y; }p[N]; int n, s; bool check(int x, int y)

Yishui_lovely 390

AS7341光谱传感器实战:如何用STM32F103精准测量环境色温(附完整代码)

本文详细介绍了如何使用STM32F103驱动AS7341光谱传感器实现环境色温的精准测量。从硬件连接到驱动开发,再到色温计算算法的实现,提供了完整的代码示例和优化建议,帮助开发者在智能照明、农业监测等领域快速应用AS7341进行高精度色温检测。

weixin_30352645的博客 478

Finding Lines UVALive - 6955 随机

首先先判断一下一道题的数据范围 如果提交代码出现runtime error:rand的数据范围可以超过题目所给的范围,所以就可以用了 如果出现Time Limit Exceeded:rand的数据范围超不过题目所给的范围,一直在无限循环。 #include<iostream> #include<cstring> #include<cstdio>...

qmi_q米的博客 230

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1365

APO的全面进化之路(2):走向IBP、建设端到端供应链计划体系

前一篇记录阐述了在供应链计划(Supply Chain Planning)领域里SAP的关键产品APO的不断进化之路,即部分产品从APO进化到S/4HANA,本篇将继续阐述进化之路上的另一大中坚产品力量SAP-IBP(Integrated Business Planning)。作为SAP数字化供应链(Digital Supply Chain)中供应链计划SCP的左膀右臂,S/4HANA与IBP共同完善了计划域的完整闭环。本篇作为收尾,在先谈对IBP产品的个人认知之前,特别是在当今这个IT产品迭代多、技术革新

ChampaignWolf的专栏 5232

2014-2015 Northwestern European Regional Contest (NWERC 2014) Problem F Finding Lines

只有pdf题面,放个比赛链接http://codeforces.com/gym/101482 题目大意:给n个点,一个p,问是否存在一条直线,让至少 ceil(n * p / 100) 个点在这条直线上。 n &lt;= 1e5,  20 &lt;= p &lt;= 100 解题思路:因为p &gt;= 20,那么如果要达到目标的话,这条线上至少有n/5个点,那么我们现在来选一对点,选中一个...

swunHJ的博客 573

速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

abanchao的博客 2932

UVALive 6955 Finding Lines

题意:    问能否在给定的图中,找到足够多的点使其落在一条直线上,这些点的数量除以总数量大于等于给定的概率。 解题:     是看了别人的做法后,才知道这么做的。随机取2个点,然后判断所有点是否落在直线上,若落在直线上的比例大于等于给定概率则停止,否则继续循环,直至10000次(貌似1000也就够了。)若循环10000次后仍未找到大于概率的情况则输出impossible。(注意特殊

David_Jett 1576

赛灵思Xilinx 7系列FPGA硬件设计知识总结

本文讲述了赛灵思7系列FPGA硬件设计的关键点,为使用该系列FPGA提供硬件设计参考。

csdn_dsw的博客 3621

Cesium实战:3DTiles模型分层分户抽屉效果实现全攻略(附完整代码)

本文详细解析了在Cesium中为3DTiles模型实现分层分户抽屉效果的核心原理与完整代码。通过“主-副双模型”策略,结合属性过滤与矩阵变换,开发者能够创建出可交互、可探索的动态建筑可视化效果,适用于数字孪生、智慧城市及BIM可视化等场景。

d6e7f8g9h的博客 295

uvalive 6955 Finding Lines rand()应用

。。。

禅境花园 565

STC8G1K08A 实战应用:从配置到功能实现

本文详细介绍了STC8G1K08A单片机的实战应用,从开发环境搭建、GPIO配置、ADC模块使用到定时器中断处理和PWM输出等核心功能。重点讲解了外设模块的协同工作配置技巧,并分享了实际项目开发中的经验教训,帮助开发者快速掌握STC8G1K08A的高效应用。

n4o5p6q7r的博客 391

Finding Lines UVALive 6955(rand随机化过题 )

题意:给 n(10^5)个点,问是否满足超过%p的点在同一条直线上。  #include using namespace std; int x[101000],y[101000]; using namespace std; bool judge(int a, int b, int c)//判断三点是否共线 { return (y[b] - y[a]) * (x[c] - x[a]) =

略略略的博客 449

《嵌入式-STM32开发指南》第三部分 外设篇 - 第2章 温度传感器DS18B20

2.1 理论分析 2.1.1概述 DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。 DS18B20采用的单总线协议,也就是只需占用主机一个I/O口,无需其他外围电路,直接将环境温度转换为数字信号,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。另外,以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量

不问归期的博客 8305

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

UVALive 6955 Finding Lines(奇特的过题方式)

题意:给 n(10^5)个点,问是否满足超过%p的点在同一条直线上。 思路:枚举任意两点的搞肯定超时,我也是第一次知道随机化过题(知乎上看到)。随机选择任意两点,在枚举一遍。这题时限是20s,我尝试随机500,1000,10000都可以过。#include<bits/stdc++.h> using namespace std; const int N=100000+10; int x[N],y[N

笔记 610

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【随机算法】(NWERC2014) F-Finding Lines

如果存在一条线满足情况,有m个点在这条直线上,选取任意两个点,选中的一个点的在直线上的概率是mn\frac{m}{n}nm​,选另一个点的恰好也在直线上的概率就是(m−1)n\frac{(m-1)}{n}n(m−1)​,就变成选中这条直线的概率是m∗(m−1)n∗n\frac{m*(m-1)}{n * n}n∗nm∗(m−1)​,选不中这条直线的概率变成了t=(1−m∗(m−1)n∗n)t = (1-\frac{m*(m-1)}{n*n})t=(1−n∗nm∗(m−1)​),然后应该随机选1000次,全部选

cjlu zx的博客 377

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Gym - 101482F Finding Lines

这题做法很简单,随机选两个不相同的点,那就有(1/p)^2的概率这两个点在这条可能的直线上,唯一要注意的是,你随机数不能用rand,会被卡,就是这个卡了我们一个多小时,用mt19937就可以了 题目链接 #include<bits/stdc++.h> using namespace std; #define ll long long const int N = 1e5+10; struct Point{ ll x,y; Point(){} Point(ll _x,ll _y){ .

天涯沧海的博客 266

uva 11198 Dancing Digits

首先这道题目需要用到全排列的哈希这个知识点,只要对排列的哈希可以解决,那么剩下的就是广搜加优先队列寻找最短路径的问题了问题,在状态进行扩展的时候注意每一次的状态拓展要找到当前状态下所有可以进行配对的两个节点,然后两个节点之间进行四种位置的变换,生成所有下一步可能的状态,这样利用广搜加优先队列的方法,问题就得到解决了。 #include #include #include #includ

皓首不倦 不负少年 619
上一篇: SPOJ - PLSQUARE
下一篇: 2016 - 12 月 27 SPOJ Interesting Subset
just_sort
博客等级 码龄11年 2358粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值