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

适配adv7280m相机到rk3588的安卓平台 Kernel-5.10/arch/arm64/configs/firefly_defconfig里面增加配置CONFIG_VIDEO_ADV7180=y。出现一次开不了机器的情况,接调试口发现,在set_fmt里面用s_ctrl对mipi的频率进行设置会出现异常。设备树修改kernel-5.10/arch/arm64/boot/dts/rockchip/13.dts。把MEDIA_ENT_F_ATV_DECODER改回MEDIA_ENT_F_CAM_SENSOR。第二次编译,仅仅刷新boot.img。 阅读详情

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;
}
告别调参玄学:用 DINOv2 (ViT-S/ViT-G) 和 PCA 可视化,直观理解自监督特征 本文深入解析了DINOv2(ViT-S/ViT-G)模型在自监督学习中的特征提取机制,通过PCA降维技术实现特征空间的可视化。文章对比了不同规模模型的特征表达差异,并提供了PCA阈值调优和深度分析的实用技巧,帮助读者直观理解自监督学习的视觉密码。 阅读详情

相关推荐

Score Matching(得分匹配)

Score Matching(得分匹配)是一种统计学习方法,用于估计概率密度函数的梯度(即得分函数),而无需知道密度函数的归一化常数。这种方法由Hyvärinen在2005年提出,主要用于无监督学习,特别是在密度估计和生成模型中。

weixin_39699362的博客 2168

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

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

An55511的博客 244

HarmonyOS逆向降级实战:从鸿蒙2.0回退至EMUI 10.1的完整路径解析

本文详细解析了从HarmonyOS 2.0逆向降级至EMUI 10.1的完整操作流程,涵盖必备工具准备、数据备份策略及阶梯式降级步骤。针对华为手机用户遇到的兼容性问题,提供HiSuite和HiSuite Proxy工具的具体使用方法,并分享降级失败应急处理与系统优化技巧,帮助用户安全高效完成系统回退。

weixin_27741699的博客 1900

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

STM32F407控制舵机

STM32F407控制舵机运行 使用STM32F407控制舵机,首先来看下舵机图片 [黑红白,黑线接GND,红线接VCC,信号线接白色线(有的舵机线的颜色不同,例如褐色红色橘色,仅颜色不同接法还如上述)] 舵机需要信号的周期为20ms,即频率为50Hz。 接下来正式操作: 步骤一:STM32F4程序(本次程序的PWM信号产生的周期频率由定时器TIM14通道1产生(TIM14_CH1),想要使用其它定时器也没关系下面会讲到) #include "pwm.h" void TIM14_CH1_PWM_In

Ievn_Hare的博客 1万+

GD32测量pwm波频率以及占空比

1、需求 最近做的一个项目,其中有一个传感器输出是pwm波形,频率代表速度,频率越高速度越快。不同的占空比代表不同的故障类型。占空比10%~90%,频率范围20hz ~1khz。 基于以上的需求,单片机要实现两个功能: 1、测量频率 2、测量占空比 这怎么玩呢?从没搞过啊。 2、需求分析 经过查找资料以及参考正点原子的教程,发现单片机的定时器的输入捕获功能能够实现该功能。 2.1分析 如上图所示,测量占空比和测量频率实际上就是测量波形的长度。 对于占空比,就是测量T2与T1时刻的差值 对于频率,就是测量T

Jack Yi的博客 9072

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

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

世界很大 659

汇川AM系列后台安全管理与用户权限的设置方法

汇川AM系列后台安全管理与用户权限的设置方法。

viixin的博客 8457

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

sap资产post记录查询时候 报错 如图

SAP资产过账查询报错AA653解决方案摘要 错误原因:系统无法计算会计年度期间的最后一天,导致资产折旧/过账失败。常见原因包括:1)未创建2025年期间版本;2)期间日期映射不完整;3)依赖日历但未生成2025年日历。 解决方法: 通过OB37维护2025年12/13个完整期间 补充缺失期间或修正结束日期 使用SCAL生成2025年工厂日历 验证步骤: 检查T009R表2025年记录完整性 测试AFAB折旧运行 重新查询资产过账 提示:建议财务团队统一维护跨年度期间数据,并在测试系统验证变更。

金牌架构师 834

SAP Word 模板与 ABAP XML 数据流合并机制深度解析

Office Open XML 标准把一个.docx拆分成多个部件(document.xml、customXml\item1.xml 等),天然支持命名空间与 XPath;Word 在渲染时,会扫描<w:sdt>(结构化文档标签)与来确定绑定关系;在 ABAP 端,通过简单字符串替换与 XSLT 变换即可完成数据灌入,无需 COM Automation,安全且易于调试。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 373

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

STL。。。

代码改变世界 1081

如何在 SAP BTP 上使用 Integration Suite 消费 S/4HANA Cloud API

SAP Integration Suite是一个集成平台即服务(iPaaS),允许开发人员顺利地将内部部署和基于云的应用程序和流程与SAP管理的工具和预构建内容进行集成。登录 SAP Business Technology Platform Cockpit,进入 integration suite:再点击 API management 进入 API Portal:或者直接从收藏夹里打开链接:https://304a49cetrial.integrationsuitetrial-apiportal.cfapp

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1699

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

老版QQ原生表情gif动态

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

数学建模模型总结

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

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

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

缺氧 640

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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、付费专栏及课程。

余额充值