Codeforces IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)

组态王|以一定的时间间隔查询某个时间段内的历史数据 使用该函数其他都可以满足,唯一问题是变量的选择,当切换站点后查询历史数据时,所选的变量依然是上次站点查询时所选择的变量,每当更换站点查询时都需要重新选择变量,这一点太繁琐,是用户和操作者无法忍受的。但是由于现场可能数据变化并非太过频繁,想要实现记录频率不变,还是以1分钟一次的频率进行存储,但是报表查询的时候想要只显示整点的数据。其中日历控件的设置与之前的历史数据查询是一样的,报表的抬头设置都是不用变的,此处不再赘述,有兴趣的可以。以上为组态王中以一定的时间间隔查询某个时间段内的历史数据的实现过程。 阅读详情

C. Bear and Up-Down

当不满足要求的数超过4个的时候,肯定是无解的,否则用每个数和这4个数交换,然后check。。比赛的时候写了很繁琐的分类讨论,竟然没挂。。

#include <bits/stdc++.h>
#include <unordered_map>

#define ll long long 

using namespace std;


int a[150010];

int err[150010];
int n;

bool judge(){
    for(int i=1;i<n;i++){
        if(i&1){
            if(a[i]>=a[i+1]){
                return 0;
            }
        }else{
            if(a[i]<=a[i+1]){
                return 0;
            }
        }
    }
    return 1;
}

int main(){

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

    int cnt= 0;

    for(int i=1;i<n;i++){
        if(i&1){
            if(a[i]>=a[i+1]){
                err[cnt++] = i;
            }
        }else{
            if(a[i]<=a[i+1]){
                err[cnt++] = i;
            }
        }
    }
    int ans = 0;

    if(cnt>4){

    }else if(cnt==4){
        if(err[0]+1==err[1] && err[2]+1==err[3]){
            swap(a[err[1]],a[err[3]]);
            ans+=judge();
            swap(a[err[1]],a[err[3]]);

        }else{

        }
    }else if(cnt==3){
        if(err[0]+2==err[2]){
            swap(a[err[1]],a[err[2]]);
            ans+=judge();
            swap(a[err[1]],a[err[2]]);

            swap(a[err[1]],a[err[2]+1]);
            ans+=judge();
            swap(a[err[1]],a[err[2]+1]);

            swap(a[err[0]],a[err[2]]);
            ans+=judge();
            swap(a[err[0]],a[err[2]]);
        }if(err[0]+1==err[1]){
            swap(a[err[1]],a[err[2]]);
            ans+=judge();
            swap(a[err[1]],a[err[2]]);

            swap(a[err[1]],a[err[2]+1]);
            ans+=judge();
            swap(a[err[1]],a[err[2]+1]);

        }else if(err[1]+1==err[2]){
            swap(a[err[0]],a[err[2]]);
            ans+=judge();
            swap(a[err[0]],a[err[2]]);

            swap(a[err[0]+1],a[err[2]]);
            ans+=judge();
            swap(a[err[0]+1],a[err[2]]);

        }else{

        }
    }else if(cnt==2){
        if(err[0]+1==err[1]){
            swap(a[err[0]],a[err[1]+1]);
            ans+=judge();
            swap(a[err[0]],a[err[1]+1]);

            for(int i=1;i<=n;i++){
                swap(a[i],a[err[1]]);

                bool ok = 1;
                for(int j=i-3;j<=i+3;j++){
                    if(j<1)continue;
                    if(j>=n)continue;
                    if(j&1){
                        if(a[j]>=a[j+1]){
                            ok = 0;
                        }
                    }else{
                        if(a[j]<=a[j+1]){
                            ok = 0;
                        }
                    }
                }

                for(int j=err[1]-3;j<=err[1]+3;j++){
                    if(j<1)continue;
                    if(j>=n)continue;
                    if(j&1){
                        if(a[j]>=a[j+1]){
                            ok = 0;
                        }
                    }else{
                        if(a[j]<=a[j+1]){
                            ok = 0;
                        }
                    }
                }

                swap(a[i],a[err[1]]);
                ans+=ok;
            }

        }else{
            swap(a[err[0]],a[err[1]]);
            ans+=judge();
            swap(a[err[0]],a[err[1]]);

            swap(a[err[0]],a[err[1]+1]);
            ans+=judge();
            swap(a[err[0]],a[err[1]+1]);

            swap(a[err[0]+1],a[err[1]]);
            ans+=judge();
            swap(a[err[0]+1],a[err[1]]);

            swap(a[err[0]+1],a[err[1]+1]);
            ans+=judge();
            swap(a[err[0]+1],a[err[1]+1]);
        }
    }else if(cnt==1){
        for(int i=1;i<=n;i++){
            swap(a[i],a[err[0]]);

            bool ok = 1;
            for(int j=i-3;j<=i+3;j++){
                if(j<1)continue;
                if(j>=n)continue;
                if(j&1){
                    if(a[j]>=a[j+1]){
                        ok = 0;
                    }
                }else{
                    if(a[j]<=a[j+1]){
                        ok = 0;
                    }
                }
            }

            for(int j=err[0]-3;j<=err[0]+3;j++){
                if(j<1)continue;
                if(j>=n)continue;
                if(j&1){
                    if(a[j]>=a[j+1]){
                        ok = 0;
                    }
                }else{
                    if(a[j]<=a[j+1]){
                        ok = 0;
                    }
                }
            }

            swap(a[i],a[err[0]]);
            ans+=ok;
        }

        for(int i=1;i<=n;i++){
            if(i==err[0])continue;
            swap(a[i],a[err[0]+1]);

            bool ok = 1;
            for(int j=i-3;j<=i+3;j++){
                if(j<1)continue;
                if(j>=n)continue;
                if(j&1){
                    if(a[j]>=a[j+1]){
                        ok = 0;
                    }
                }else{
                    if(a[j]<=a[j+1]){
                        ok = 0;
                    }
                }
            }

            for(int j=err[0]-3;j<=err[0]+3;j++){
                if(j<1)continue;
                if(j>=n)continue;
                if(j&1){
                    if(a[j]>=a[j+1]){
                        ok = 0;
                    }
                }else{
                    if(a[j]<=a[j+1]){
                        ok = 0;
                    }
                }
            }

            swap(a[i],a[err[0]+1]);
            ans+=ok;
        }
    }

    cout<<ans<<endl;
    return 0;
}

D. Delivery Bears

这是一道好题!解法是二分答案,然后跑最大流判是否可行。判断方法是将边的流量改为它除以答案的值,向下取整,如果最大流不小于x就是合法。
另外要注意,二分写成循环固定次数会比较好。

#include <bits/stdc++.h>
#include <unordered_map>

#define ll long long 
using namespace std;

int n,m;
double x;

const int inf=0xfffff;  
const int N = 55;  
int  pre[N];

double maxflow,dp[N][N];

double tmp[N][N];

void Edmonds_Karp(int start, int end, int m){  
    while(1){  
        queue<int> p;  
        double minflow = inf;  
        p.push(1);
        memset(pre, 0, sizeof(pre));
        while(!p.empty()){
            int u = p.front();  
            p.pop();  
            if(u == end)               
                break;  
            for(int i = 1;i <= m;i++)  
                if(dp[u][i] > 0&&pre[i] == 0){   
                    pre[i] = u;                
                    p.push(i);  
                }      
        }  
        if(pre[end] == 0)  
            break;  
        for(int i = end;i != start;i = pre[i])  
            minflow = min(minflow, dp[pre[i]][i]);  
        for(int i = end;i != start;i = pre[i])  {  
            dp[pre[i]][i] -= minflow; 
            dp[i][pre[i]] += minflow;  
        }  
        maxflow+=minflow;  
    }  
} 


int main(){
    cin>>n>>m>>x;
    for(int i=1;i<=m;i++){
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        dp[a][b]+=c;
    }
    memcpy(tmp,dp,sizeof(dp));

    double l=0;
    double r=1000000;
    double mid = 0;
    //注意这个二分的姿势 
    for(int tt=0;tt<66;tt++){
        mid = (l+r)/2;
        memcpy(dp,tmp,sizeof(dp));
        for(int i=0;i<=n;i++){
            for(int j=0;j<=n;j++){
                dp[i][j] = floor(dp[i][j]/mid);
            }
        }
        maxflow = 0;
        Edmonds_Karp(1,n,n);

        if(maxflow>=x){
            l=mid;
        }else{
            r=mid;
        }
    }

    printf("%.10f\n",mid*x);
    return 0;
}
通讯软件013——分分钟学会Kepware OPC AE Server仿真配置 本文介绍如何使用Kepware软件仿真OPC AE Server配置。 阅读详情

相关推荐

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(c++)

本文介绍了YOLOv26在RK3588平台的C++推理部署方案。重点包括:1)扩展Ultralytics导出格式,新增RKNN_ONNX专用导出选项;2)重构Detect Head结构,使其更适合RKNN推理;3)提供C++侧后处理实现建议。该方案保留了Ultralytics训练生态,通过优化模型结构输出,将解码等操作移至C++端,充分发挥Rockchip NPU性能。适用于RK3588/RK356x等平台,需配合rknn-toolkit2使用,为YOLOv26的嵌入式部署提供完整解决方案。

qq_64366203的博客 2178

Codeforces 653C Bear and Up-Down【暴力】

题目链接: http://codeforces.com/problemset/problem/653/C 题意: 给定序列,偶数位的数字比两边都大,则成为nice,只可以交换两个数字,问有多少种交换方式使得最后的序列为nice。 分析: 比赛的时候找规律,找呀找了好久都没看出来。。。。由于只可以交换一次,交换两个数字,所以最多改变的6个数字的关系。那...

An55511的博客 244

大模型选型实战指南|教育行业:108个模型「闭卷考试」实测,这3类应用场景直接抄作业!

教育行业大模型选型必读 1.闭卷考试!独家评测集:用最新K12真题(小学-高中全学科)构建“闭卷考场”,108个模型同台竞技,数据污染率<5%(传统评测集污染率超60%) 2.价格透明对比:40元/M tokens的阿里系模型VS 2元/M tokens的字节系、腾讯系模型,谁更值? 3.四大选型禁区:>60元但得分<75的模型被列入不推荐名单(附避坑清单) 4.核心结论直出:教学核心环节必须用专用模型,90%场景用通用模型可降本50%+

easyllm的博客 1523

Codeforces 653C - Bear and Up-Down 暴力

C. Bear and Up-Down time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The life goes up and down, just like nice sequ...

253

angular中访问本地json文件

先在assets文件夹下写一个json文件,这样在打完包之后也可以手动修改json文件内容 1、在需要访问本地json文件的ts文件里面引入 import{HttpClient}from'@angular/common/http'; 2、用ajax请求调用,我这里是用已经封装好的ajax请求调用 gethttp = ()=>{ var self = this self.ajax.getAjax("../../assets/server.json","g...

蜗牛~~ 1830

C#与欧姆龙PLC 通信——fins udp协议

该调试助手专门为了帮助大家学习以及测试Fins-Udp通信,下面进行详细介绍。

qq_34059233的博客 2875

Codeforces 653C Bear and Up-Down 【模拟】

题目链接:Codeforces 653C Bear and Up-Down

世界很大 659

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 897

codeforces IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls

A. Bear and Three Balls time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Limak is a little polar bear. He has n balls, the i-th

菜鸟起飞的平台 500

热力学仿真软件:Fluent_(8).材料属性设置

在 Fluent 中,材料属性主要包括密度、比热容、导热系数、黏度等物理性质。这些属性在不同的仿真场景中有着不同的作用,例如在流体仿真中,密度和黏度是必不可少的;在传热仿真中,导热系数和比热容是主要考虑的因素。如果所需的材料不在材料库中,或者需要对现有材料进行修改,用户可以自定义材料属性。在主菜单中选择Materials。点击打开材料编辑器。在材料编辑器中,点击Create按钮,输入新的材料名称。选择材料类型(如FluidSolid等)。在属性栏中填写所需的材料属性。

kkchenjj的博客 1494

OSG 核心详解

OpenSceneGraph (OSG) 的核心架构、场景图管理以及几何体的绘制

qq_45859163的博客 729

CodeForces 653 A. Bear and Three Balls——(IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2))

STL。。。

代码改变世界 1081

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何

KJ.JK 2184

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-B - Bear and Compressing-暴力DP

http://codeforces.com/contest/653/problem/B 给你n,q q是置换规则,每一个规则把2个字母置换成1个 要求你构造出一个长度为n的字符串,使得满足: 每次取最前两个字母进行置换,最终整个字符串能变成 一个字母a 数据太小。暴力dp一下就好。。。 初始化,dp[1][i]=1 之前先把两个字母和一个字母映射起来,

缺氧 503

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-C - Bear and Up-Down-暴力枚举

http://codeforces.com/contest/653/problem/C 题意: 给n,给n个数。 要求一个合法序列满足: 偶数项>奇数项,奇数项 给一个序列,要求交换仅一对数,使得原序列变成合法序列 问你有多少种方案 扫一遍 看有多少个位置不符合要求,也就是  偶数项《奇数项,奇数项》偶数项的,我们把后一项坐标记录起来。 如果这样的坐标如果超过

缺氧 640

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-A - Bear and Three Balls-水题

http://codeforces.com/contest/653/problem/A 直接判断有没连在一起的3个数就好了 #include #include #include #include #include #include #include #include #include #include using namespace std; const doub

缺氧 412

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) B. Bear and Compressing 暴力

B. Bear and Compressing 题目连接: http://www.codeforces.com/contest/653/problem/B Description Limak is a little polar bear. Polar bears hate long strings and thus they like to compress them. You should al...

weixin_34332905的博客 143

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) B. Bear and Compressing

B. Bear and Compressing 题目链接 Problem - B - Codeforces Limak is a little polar bear. Polar bears hate long strings and thus they like to compress them. You shoul...

weixin_34290000的博客 117

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题

A. Bear and Three Balls 题目连接: http://www.codeforces.com/contest/653/problem/A Description Limak is a little polar bear. He has n balls, the i-th ball has size ti. Limak wants to give one ball to each ...

weixin_30819163的博客 103

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) E. Bear and Forgotten Tree 2 bfs set 反图的生成树 快速连通块

老规矩,抄一波QSC,自己的写在后面   E. Bear and Forgotten Tree 2 题目连接: http://www.codeforces.com/contest/653/problem/E Description A tree is a connected undirected graph consisting of n vertices and n  -  1 e...

u011535421的博客 306

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) E. Bear and Forgotten Tree 2 bfs set 反图的生成树...

E. Bear and Forgotten Tree 2 题目连接: http://www.codeforces.com/contest/653/problem/E Description A tree is a connected undirected graph consisting of n vertices and n  -  1 edges. Vertices are numbered ...

weixin_34161064的博客 177

Codeforces VK Cup 2016 - Round 1 (Div. 2 Edition)

A. Bear and Reverse Radewoosh  按要求计算一下即可。#include <bits/stdc++.h>#define ll long longusing namespace std;int p[111]; int t[111];int main(){ int n,c; cin>>n>>c; for(int i=1;i<=n;i++){

A Cube Master 2万+

河南省第七届ACM大学生程序设计竞赛 解题报告

这两天把去年省赛的题挂到了OJ上,顺便练手。 A.物资调度 DP,类似01背包。dp(i,j)表示情况数,第一维表示考察到第i种物资,第二维表示总数量为j。显然,如果按照题目给的数据范围,答案会超出64位整型的范围,但是题目并没有要求取模,只能说数据太弱。 B.海岛争霸 Floyd算法,稍微修改一下状态转移方程就可以了。Floyd是求和,这题是取最大。 C.机器人

A Cube Master 3360

Google Code Jam 2015 Round 1A 解题报告

太弱了,比赛时只出了A的大数据和BC小数据,排到1700+。赛后才把B的小数据过了。 A. Mushroom Monster         就是贪心模拟。第一种吃法,只有当前时刻比10秒前少才去吃减少的量,否则不吃。第二种吃法,计算每十秒的减少量,以减少量最大的作为平均速率去吃。 #include using namespace std; int m[10010];

A Cube Master 2409
上一篇: Codeforces CROC 2016 - Elimination Round
下一篇: 《补题栈》
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值