Codeforces Round #358 (Div. 2)

在mac OS下安装SQL Developer 最近一直在折腾Oracle数据库,但由于电脑是mac系统,plsql developer用不了,远程管理一直不是很方便。后来听说Navicat不错,就也装了个试试看,发现界面看起来确实不错。今天心血来潮,想试试oracle自己开发的client。用惯plsql developer的人也可以来试试看,毕竟是自己人开发的,兼容性应该会不错吧。下面就把安装过程分享给新手或者需要帮助的朋友。 1. 阅读详情

C. Alyona and the Tree

  dfs。看看哪些节点需要删去,删掉它为根的子树即可。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int maxn = 100010;

vector<int> sons[maxn];
vector<ll> ew[maxn];

ll vw[maxn];

int ans = 0;

void dfs(int u,ll MAXdist,bool flag){
    int sz = sons[u].size();
    for(int i=0;i<sz;i++){
        int v = sons[u][i];
        ll newMax = MAXdist + ew[u][i];
        if(MAXdist<0){
            newMax = ew[u][i];
        }
        bool newFlag = 0;
        if(flag || newMax > vw[v]){
            ans++;
            newFlag = 1;
        }
        dfs(v,newMax,flag || newFlag);
    }
} 

int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        scanf("%I64d",&vw[i]);
    }   

    for(int i=1;i<n;i++){
        int u;
        ll ww;
        int v=i+1;
        scanf("%d%I64d",&u,&ww);
        sons[u].push_back(v);
        ew[u].push_back(ww);
    }

    dfs(1,-1,0);

    cout<<ans<<endl;

    return 0;
}

D. Alyona and Strings

  进行2次dp,第一次求出以每个位置结尾的最长公共子串;第二次状态为 dp(i,j,k) ,即到位置 i ,j为止,分为 k 段的答案。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

char a[1010];
char b[1010];

int num[1010][1010];

int n,m,k;

void LCS(){
    int i,j;
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            if(a[i-1]==b[j-1]){
                num[i][j]=num[i-1][j-1]+1;
            }
        }
    }
}

int dp[1010][1010][15];

int main(){
    cin>>n>>m>>k; 

    scanf("%s",a);
    scanf("%s",b);

    LCS();

    int ans = 0;
    for(int kk=1;kk<=k;kk++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                dp[i][j][kk] = max(dp[i][j][kk],dp[i-num[i][j]][j-num[i][j]][kk-1] + num[i][j]);
                dp[i][j][kk] = max(dp[i][j][kk],dp[i-1][j][kk]);
                dp[i][j][kk] = max(dp[i][j][kk],dp[i][j-1][kk]);
                dp[i][j][kk] = max(dp[i][j][kk],dp[i-1][j-1][kk]);
                if(dp[i][j][kk] >ans){
                    ans = dp[i][j][kk];
                }
            }
        }
    }

    for(int i=1;i<=k;i++){
        ans = max(ans,dp[n][m][i]);
    }
    cout<<ans<<endl;

    return 0;
} 

E. Alyona and Triangles

  找出n个点可以组成的最大三角形,以它为中心,在3条边方向分别添上与之全等的三角形补成一个大三角形,一定满足题意,可用反证法证明。
  具体做法是,首先求凸包(注意凸包边上出现的点不能漏),最大三角形一定出现在凸包的点上。然后,枚举第一个点,按顺序枚举第二个点,第三个点随着第二个点的移动单调,利用这个性质在 O(n2) 的时间内得到最大三角形。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

typedef double TYPE;

struct POLY{
    int n;
    TYPE *x;
    TYPE *y;

    POLY():n(0),x(NULL),y(NULL){};

    POLY(int _n,const TYPE *_x,const TYPE * _y){
        n = _n;
        x = new TYPE[n+1];
        memcpy(x,_x,n*sizeof(TYPE));
        x[n] = _x[0];
        y = new TYPE[n+1];
        memcpy(y,_y,n*sizeof(TYPE));
        y[n] = _y[0];
    }
}poly;


struct POINT{
    TYPE x;
    TYPE y;
    POINT():x(0),y(0){
    }
    POINT(TYPE _x,TYPE _y):x(_x),y(_y){
    }
    POINT operator-(POINT other){  
        return POINT(x-other.x,y-other.y);  
    }
    POINT operator+(POINT other){  
        return POINT(x+other.x,y+other.y);  
    }  
};

TYPE Cross(const POINT &a,const POINT &b,const POINT &o){
    return (a.x-o.x)*(b.y-o.y) - (b.x-o.x)*(a.y-o.y);
}

TYPE Distance(const POINT &a, const POINT &b){
    return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
}

POLY ConvexHull(const POINT *Set, int n){
    POINT *points = new POINT[n];
    memcpy(points, Set,n*sizeof(POINT));
    TYPE *X = new TYPE[n];
    TYPE *Y = new TYPE[n];
    int i,j,k = 0, top = 2;
    for(i = 1;i<n;i++){
        if((points[i].y<points[k].y) ||
                ((points[i].y == points[k].y) && 
                (points[i].x<points[k].x))){
            k = i;          
        }
    }

    swap(points[0],points[k]);

    for(i = 1;i<n-1;i++){
        k=i;
        for(j = i+1;j<n;j++){
            if( (Cross(points[j],points[k],points[0])>0) ||
                    ((Cross(points[j],points[k],points[0]) == 0) &&
                    (Distance(points[0],points[j])<Distance(points[0],points[k])))){
                k = j;  
            }
        }
        swap(points[i],points[k]);
    }

    X[0] = points[0].x; Y[0] = points[0].y;
    X[1] = points[1].x; Y[1] = points[1].y;
    X[2] = points[2].x; Y[2] = points[2].y;

    for(i = 3;i<n;i++){
        while(Cross(points[i],POINT(X[top],Y[top]),POINT(X[top-1],Y[top-1]))>=0){
            top--;
        }
        ++top;
        X[top] = points[i].x;
        Y[top] = points[i].y;
    }

    delete[] points;
    POLY poly(++top,X,Y);
    delete[] X;
    delete[] Y;

    return poly;
}

POINT pts[5555];

int main(){  
    int n,s;  
    cin>>n>>s; 

    for(int i=0;i<n;i++){  
        scanf("%lf %lf",&pts[i].x,&pts[i].y);  
    }

    poly = ConvexHull(pts , n);
    n=poly.n;

    int a[3];

    for(int i=0;i<n;i++){
        pts[i] = POINT(poly.x[i],poly.y[i]);
    }

    int j=1,k=0;  
    double ans=0;  
    for(int i=0;i<n;i++)  { 
        j=(i+1)%n;  
        k=(j+1)%n;  
        while(fabs(Cross(pts[i],pts[j],pts[k]))<fabs(Cross(pts[i],pts[j],pts[(k+1)%n]))) k=(k+1)%n; 

        while(j!=i&&k!=i)  { 
            if(fabs(Cross(pts[i],pts[j],pts[k])) > ans){
                ans = fabs(Cross(pts[i],pts[j],pts[k]));
                a[0] = i;
                a[1] = j;
                a[2] = k;
            }

            while(fabs(Cross(pts[i],pts[j],pts[k]))<fabs(Cross(pts[i],pts[j],pts[(k+1)%n])))  
                 k=(k+1)%n;  
            j=(j+1)%n;  
        }  
    } 


        POINT b[3];
        b[0] = pts[a[1]] + (pts[a[2]]-pts[a[0]]);
        b[1] = pts[a[0]] + (pts[a[2]]-pts[a[1]]);
        b[2] = pts[a[0]] + (pts[a[1]]-pts[a[2]]);

            for(int i=0;i<3;i++){
                cout<<(int)b[i].x<<" "<<(int)b[i].y<<endl;
            }
            return 0;


    return 0;
}
GEE APP:基于Sentinel-1 SAR数据的洪水检测与制图系统:利用GEE平台实现洪涝区域提取、面积统计及矢量栅格化导出 本文介绍了一个基于Google Earth Engine平台的Sentinel-1 SAR洪水监测应用,通过自动化流程实现洪水淹没区域的精准检测与分析。系统采用Refined Lee滤波降噪和Otsu自适应阈值算法,结合SRTM地形数据消除干扰,可自动计算淹没面积并生成可视化结果。该工具提供用户友好的交互界面,支持多格式数据导出,适用于灾害应急响应、环境监测和城市规划等领域,具有云平台处理、算法鲁棒性强和操作简便等技术优势。 阅读详情

相关推荐

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇) 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大。能引用K大的成果也是自己的荣幸,不便之处还请K大多多包涵,在此引用只是为方便自己日常学习,部分参数表里根据自身情况,增加了修改环节和相应参数。 垂直起降固定翼 中文教程-参数设置 垂直起降固定翼是由 多轴+...

u011322358的博客 2万+

Codeforces Round #358 (Div. 2) A. Alyona and Numbers

Codeforces Round #358 (Div. 2) A. Alyona and Numbers

SaySomething 417

深入理解EtherCAT状态机:从IGH代码看伺服电机如何从‘上电’到‘使能’

本文深入解析EtherCAT状态机的工作原理,重点探讨伺服电机从'上电'到'使能'的状态转换过程。通过分析状态字(Status Word)和控制字(Control Word)的交互机制,结合IGH代码实例,揭示DS402状态机的核心逻辑,帮助工程师解决60%以上的伺服控制问题,提升EtherCAT网络调试效率。

weixin_42549037的博客 289

Codeforces Round #358 (Div. 2) DP

http://www.codeforces.com/problemset/problem/682/D 题意:最长公子序列,限制是最多分成k段,也就是你得到的最长公子序列不能实在原串中分成K段以上。 思路:一个DP。。想了很久。。果然DP始终没法入门。。我们设状态是DP[ i ] [ j ] [ k ] [ s ]   表示匹配到第i,j时分成k段,此时是连续或不连续时的最长LC

zxl博客 237

GMSL Strapping Pins CFG0/CFG1 应用

如果 0x13.bit3 = 0, 则是链路没有 Locked,需要去排查下具体问题(通常是工作模式配置问题)如果遇到 Link 无法建立(Locked),电源没有问题的情况下,多半是加串器和解串器的工作模式不匹配。芯片在上电时,会检测这两个管脚的电压,根据不同的电压值,芯片进入到不同的工作模式。一对加串器和解串器,只要工作模式匹配得当,Link Locked,便能够正常工作。ADI 已经充分考虑了用户的需求,尽可能的降低的芯片的使用和配置复杂度。GMSL 的解串器也是类似的配置,具体请参考对应的规格书。

iStoneWalker的博客 1271

PCIe 互联的芯片-- P2P(Peer-to-Peer)

PCIe设备间支持P2P直连通信,但需满足硬件、固件和软件三方面条件。硬件需CPU/芯片组和PCIe交换器支持P2P,BIOS需开启相关设置,操作系统和驱动也要适配。消费级GPU通常禁用此功能,且PCIe P2P性能(128GB/s带宽)远低于NVLink(900GB/s)。常见限制包括ACS阻断、IOMMU隔离和带宽瓶颈。可通过nvidia-smi或NCCL测试验证P2P是否生效。该技术适合异构设备通信,但需注意配置调优。

MHD0815的博客 683

Codeforces Round #358 (Div. 2) C

C. Alyona and the Tree time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Alyona decided to go on a diet and we

CRZbulabula的博客 544

轻量化部署实战:C#上位机集成AI模型的3种方案深度对比(ML.NET/ONNX/TensorFlow.NET)

C#上位机部署AI模型,核心不是“选最强大的方案”,而是“选最适配的方案”——工控机的低配置、高稳定性需求,决定了“轻量化”和“部署简单”是选型的首要原则。回顾3种方案:ML.NET:原生、轻量化、零依赖,适合传统ML场景,低配置工控机首选;ONNX Runtime:通用、平衡、易落地,适合深度学习场景,工业落地首选;TensorFlow.NET:强大、灵活、纯C#,适合复杂模型,高配置工控机首选。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 364

Codeforces Round #358 (Div. 2) B. Alyona and Mex

B. Alyona and Mex 题目连接: http://www.codeforces.com/contest/682/problem/B Description Someone gave Alyona an array containing n positive integers a1, a2, ..., an. In one operation, Alyona can choo

滴水穿石,慢慢积累,总会有成果 1226

MATLAB与ROS联合仿真——控制类功能模块介绍

MATLAB与ROS联合仿真——控制类功能模块介绍

慕羽★的博客 2353

手把手教你学Simulink--基于Simulink的高速公路自动驾驶场景仿真建模

特点车道保持:自动调整车辆方向以保持在车道中央。自适应巡航控制(ACC):根据前方车辆的速度自动调节车速。换道辅助:安全地变换车道以超过慢速行驶的车辆或准备驶离高速公路。紧急制动:检测潜在碰撞并采取措施避免事故。挑战安全性:确保所有功能在各种条件下都能可靠运行。实时性:处理大量传感器数据,并迅速做出反应。复杂性:集成多个子系统,包括感知、规划与控制。首先明确要模拟的任务内容。车辆需保持在车道内行驶。根据交通情况自动调整速度。安全地执行换道操作。在必要时实施紧急制动。

MHD0815的博客 247

Codeforces Round #358 (Div. 2) C. Alyona and the Tree DFS

&#13; C. Alyona and the Tree&#13; 链接:&#13; http://www.codeforces.com/contest/682/problem/C&#13; 题意&#13; 给你一棵树,有点权有边权。&#13; 如果存在两个点,u,v。满足u存在v的子树中,(u,v)的之间的边权和大于a[u]的话,那么u点是不开心的。&#13; 你只能从叶子...

花海 204

OCR文字识别基础

ocr文字识别

m0_47405013的博客 1755

Codeforces Round #358 (Div. 2)D. Alyona and Strings

链接:http://codeforces.com/contest/682/problem/D 题意:给定两个字符串s和t和一个整数k。求s和t的最长公共子串,并且要求s中的所有子段要和t中所有子段都相同,并且要恰好有k段,题目保证有解。详见样例。 分析:设dp[0/1][i][j][k]表示s中前i个字符和t中前j个字符刚好拿了k个子段的长度,0表示s[i]和t[j]这对字符没有用到,1表示s

Fsss 572

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

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

Codeforces Round #358 (Div. 2) B. Alyona and Mex

Someone gave Alyona an array containing n positive integers a1, a2, ..., an. In one operation, Alyona can choose any element of the array and decrease it, i.e. replace with any positive integer that is smaller than the current one. Alyona can repeat this o

Ontheway0101的博客 1049

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Codeforces Round #358 (Div. 2) Alyona and Strings

D. Alyona and Strings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题意: 给出两个字符串 s[1]s[2].......s[n], t

INCINCIBLE的博客 393

Codeforces Round #358 (Div. 2) B

B. Alyona and Mex time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Someone gave Alyona an array containing n 

CRZbulabula的博客 579

Codeforces Round #358 (Div. 2)A~D

A 注意红名可以等于2400。#include<bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n){ int flag=0; for(int i=0;i<n;i++){ string a,b,c; cin>>a>>b

笔记 415

Codeforces Round #358 (Div. 2) A

A. Alyona and Numbers time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output After finishing eating her bun, Alyona

CRZbulabula的博客 581
上一篇: Codeforces Round #357 (Div. 2)
下一篇: Codeforces Round #359 (Div. 1)
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值