2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E.Maximum Flow(找规律?)

candb++高效创建DBC文件实战指南 DBC文件是CAN总线通信的核心协议描述,本质是ECU间可执行的数字契约。其原理涉及信号位布局、字节序解析、物理值缩放及厂商扩展属性等底层约束。技术价值在于将隐性协议逻辑显性化、可验证、可追溯,显著降低联调错误率与协议维护成本。典型应用场景覆盖汽车电子开发、BMS/ADAS控制器建模、主机厂(如长安、比亚迪)定制规范落地及CANoe/CANalyzer仿真集成。本文聚焦candb++这一工业级DBC编辑器,详解安装避坑、信号建模、企业属性注入与常见幽灵错误排查,助力工程师从手动填表迈向协议驱动开发。 阅读详情

题意:现在有n个点,编号为0至n-1, 满足i<j的任意两点连一条i^j流量的边,问0到n-1的最大流。 n<=1e18


思路:n这么大。。上来就先打个表看下规律吧,结果发现每项与上一项的差值有个规律,相邻2^k的差值为2^(k*2)+1,简单来说就是每个差值(2^(k*2)+1)都从一个位置开始,每隔一定距离出现一次,一个位置同时可能是多个数的话取最大的那个。可以看看表:



知道了这个规律,统计下每种差值在1-n内他出现的次数,最后求和下就行,因为有些位置同时出现多种差值的情况需要取大的那个,所以倒着容斥一下就行,减掉出现过的个数。


代码:

#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
typedef long long ll;
ll fac[63] = {1, 1}, start[63] = {0, 3};
ll ans[100], step[100] = {1, 1};
ll num[100];

void init()
{
    for(int i = 2; i <= 61; i++)
        fac[i] = fac[i-1]*2*2%mod, step[i] = step[i-1]*2;
    start[2] = 5;
    for(int i = 3; i <= 61; i++)
        start[i] = start[i-1]*2-1;
    for(int i = 1; i <= 61; i++)
        start[i] -= step[i];
}

int main(void)
{
    init();
    ll n;
    while(~scanf("%lld", &n))
    {
        memset(ans, 0, sizeof(ans));
        memset(num, 0, sizeof(num));
        ll pre = 0;
        for(int i = 61; i >= 1; i--)
        {
            num[i] = ((max(0LL, n-start[i])/step[i])-pre+mod)%mod;
            ans[i] = num[i]*(fac[i]+1)%mod;
            pre = (pre+num[i])%mod;
        }
        ll res = 1;
        for(int i = 1; i <= 61; i++)
            res = (res+ans[i])%mod;
        printf("%lld\n", res);
    }
    return 0;
}


打表代码:

#include<bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const int maxn = 1e3+5;
const int maxv = 1e6+7;
int head[maxv], cur[maxv], d[maxv], s, t, k, sum;
int n, m, dis[maxn];
struct node
{
    int v, w, next;
}edge[maxv];

void addEdge(int u, int v, int w)
{
    edge[k].v = v;
    edge[k].w = w;
    edge[k].next = head[u];
    head[u] = k++;
    edge[k].v = u;
    edge[k].w = 0;
    edge[k].next = head[v];
    head[v] = k++;

}

int bfs()
{
    memset(d, 0, sizeof(d));
    d[s] = 1;
    queue<int> q;
    q.push(s);
    while(!q.empty())
    {
        int u = q.front();
        if(u == t) return 1;
        q.pop();
        for(int i = head[u]; i != -1; i = edge[i].next)
        {
            int to = edge[i].v, w = edge[i].w;
            if(w && d[to] == 0)
            {
                d[to] = d[u] + 1;
                if(to == t) return 1;
                q.push(to);
            }
        }
    }
    return 0;
}

int dfs(int u, int maxflow)
{
    if(u == t) return maxflow;
    int ret = 0;
    for(int i = cur[u]; i != -1; i = edge[i].next)
    {
        int to = edge[i].v, w = edge[i].w;
        if(w && d[to] == d[u]+1)
        {
            int f = dfs(to, min(maxflow-ret, w));
            edge[i].w -= f;
            edge[i^1].w += f;
            ret += f;
            if(ret == maxflow) return ret;
        }
    }
    return ret;
}

int Dinic()
{
    int ans = 0;
    while(bfs() == 1)
    {
        memcpy(cur, head, sizeof(head));
        ans += dfs(s, INF);
    }
    return ans;
}

int main(void)
{
    int e;
    while(~scanf("%d", &e))
    {
        int pre = 0;
        for(int i = 2; i <= e; i++)
        {
            n = i;
            memset(head, -1, sizeof(head));
            s = 0, t = n-1; k = 0, sum = 0;
            for(int i = 0; i < n; i++)
            {
                for(int j = i + 1; j < n; j++)
                {
                    if(j == n-1) dis[i] = i ^ j, sum += i ^ j;
                    addEdge(i, j, i^j);
                }
            }
            int cur = Dinic();
            printf("%2d: %3d 差值:%3d\n", i, cur, cur-pre);
            pre = cur;
        }
    }
    return 0;
}


使用Avalonia跨Linux平台 Avalonia类似使用WPF的技术方法来开发,所以,需要会使用WPF,其中的一些语法和写法与WPF有所区别,但是他们相差不大,会WPF的话,基本上可以看看文档后,完全掌握Avalonia的使用,从而达到跨平台开发的任务。其实写法有些不一样,可以参考官网的说明,进行修改。2. 安装完成后,重启VS2022,我们可以看到1和2,其中1是使用MVVM模式开发,2是普通模式开发,我们选择2,建立项目。9.直接双击粉红色的文件,进行安装,输入密码,但是美中不足的是,好像没有图标,图标似乎需要单独去设置。 阅读详情

相关推荐

MobileNet V3 图像分类

MobileNet V3

Henry的博客 1768

L - Tree dfs,E - Find Maximum

L - Tree dfs,E - Find Maximum

weixin_52621204的博客 808

光学设计必看:如何用泽尼克系数优化镜头像差?从Zemax到实际案例解析

本文深入解析了如何利用泽尼克系数优化镜头像差,从理解其工程价值、解码软件报告,到在Zemax中主动设置优化目标。通过高倍显微物镜等实际案例,详细展示了如何通过分析泽尼克系数诊断问题,并实施针对性优化策略,从而实现对球差、彗差等像差的精准控制,提升光学设计的精细度和系统稳健性。

gg901的博客 1033

2022icpc西安站部分题解-E

2022icpc西安站部分题解

m0_62676987的博客 2415

抖音直播间人气接口算法 抖音协议

抖音直播间人气接口算法 抖音协议 抖音算法

Q44804487的博客 1万+

【100%通过率】2023华为od机试C卷【电脑病毒感染】Python 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 3033

The 2022 ICPC Asia Xian Regional Contest(C/E/F/G/J/L)

若一个单词S满足条件,则它的子串S[1~n-1]和S[2~n]也满足条件,所以我们根据字符串长度从下往上拼出最长的单词,若这个单词S能在比它长度小的set集合中,找到S[1~n-1]和S[2~n]两个字串,说明这个字符合法,放入set,反之continue。总结一下,就是枚举r在三进制上的每一位,然后该位-1,后面的位都变成2,再判断它是否大于l,若合法则答案取min。当我们选择i=n时,我们则可以选择整个区间,所以我们在这个区间内我们可以分别选择最大的2个元素、最大的1个元素、不选,三者取max即可。

JCGOODER的博客 935

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3193

Div2. Find Maximum

Find Maximum (二进制) CodeForces - 353C [GO](https://codeforces.com/problemset/problem/353/C) Valera has array a, consisting of n integers a0, a1, …, an - 1, and function f(x), taking an integer from 0 to 2n - 1 as its single argument. Value f(x) is calculat

buzzaz的博客 361

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

phmatthaus的专栏 775

【图像去噪】论文复现:CLIP用于图像去噪提升泛化性!CLIPDenoising的Pytorch源码复现,跑通CLIPDenoising全流程,图文结合,网络结构梳理和拆解,对应源码注释!

论文题目:Transfer CLIP for Generalizable Image Denoising —— 用于可泛化图像去噪的转移CLIP。【图像去噪】论文精读:Transfer CLIP for Generalizable Image Denoising(CLIPDenoising)CLIPDenoising理论部分详解见上面对应的论文精读,本文以源码为主,理论部分只是粗略回顾。启发:多看其他领域的文章,分析是否能应用在去噪领域,这是产生idea的要素之一;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1414

Pandas: Find maximum values & position in columns or rows of a Dataframe求Dataframe中行列的最大值

Pandas: Find maximum values & position in columns or rows of a Dataframe求Dataframe中行列的最大值 https://thispointer.com/pandas-find-maximum-values-position-in-columns-or-rows-of-a-dataframe/ df.max(a...

llrraa2010的专栏 1135

37、半导体硅材料中的缺陷与吸杂技术解析

本文系统解析了半导体硅材料中的缺陷形成机制及其对电子器件性能的影响,重点探讨了生长和工艺诱导缺陷、表面与内部微缺陷的起源与特征。文章详细阐述了吸杂技术的原理、过程及在集成电路和太阳能电池制造中的应用,强调通过氧行为调控和热处理优化实现缺陷控制。同时介绍了吸杂效果的评估方法,并展望了未来新型吸杂技术的发展趋势,为提升半导体器件性能和制造良率提供理论支持和技术路径。

mongodb5scout的博客 164

Maximum Flow - 2017 ACM-ICPC 亚洲区(西安赛区)网络赛

Given a directed graph with nn nodes, labeled 0,1, \cdots, n-10,1,⋯,n−1. For each <i, j>i,j> satisfies 0 \le i 0≤ijn, there exists an edge from the i-th node to the j-th node, the capacity

J. Cole 448

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow

Given a directed graph with nnn nodes, labeled 0,1,⋯,n−10,1, \cdots, n-10,1,⋯,n−1. For each i,j> satisfies 0≤i0≤ijn, there exists an edge from the i-th node to the j-th node, the capacity of wh

WZJRJ28 451

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

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

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E.Maximum Flow【规律】

Given a directed graph with nn nodes, labeled 0,1, \cdots, n-10,1,⋯,n−1. For each <i, j>i,j> satisfies 0 \le i 0≤ijn, there exists an edge from the i-th node to the j-th node, the capacity

mengxiang000000 624

Statistics and Machine Learning Toolbox

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

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E Maximum Flow

原题解链接:http://blog.csdn.net/kkkkahlua/article/details/78009087 他用的最小割的来求解最大流。认为只要讨论每一个点到0和n-1那个更小哪条边就一定是最小割中的一条边。感觉很有道理,然而不知道是怎么证的。 然而在考场上我找规律做的。。。

binarycopycode 698

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow

小数据打表之后找规律,, 发现了规律是 https://www.jisuanke.com/contest/876/44180 F题 也可以参考http://blog.csdn.net/tzc_anruoxin/article/details/78005515#include<iostream> #include<cstdio> #include<cstring> #include<vecto

now_ing的博客 407

Maximum Flow 规律题 2017 ACM-ICPC 亚洲区(西安赛区)网络赛

Given a directed graph with nn nodes, labeled 0,1, \cdots, n-10,1,⋯,n−1. For each <i, j>i,j> satisfies 0 \le i 0≤ijn, there exists an edge from the i-th node to the j-th node, the capacity

你那么爱笑,家里人知道吗? 438

计蒜客-2017 ACM-ICPC 亚洲区(西安赛区)网络赛E题Maximum Flow(网络流打表找规律)

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Given a directed graph with nn nodes, labeled 0,1, \cdots, n-10,1,⋯,n−1. For each <i, j><i,j> satisfies 0 \le i < j < n0≤i<j<n, there exists an edge from the i-th node to the j-th node, the capacity of which is ii xor jj. Find th

yo_bc的博客 906

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow(最大流/规律)

题目:https://nanti.jisuanke.com/t/17118 题意:0~n-1个点,任意两点i,j,流量为i xor j,求0~n-1的最大流 思路:规律 首先打表 以下参考http://blog.csdn.net/ShiWaiGaoRen12345/article/details/78007721 题解: 打印出来相邻两个数的差是有规律的, 差值的规律如下:

huatian5的博客 380

计蒜客 17118 Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)

题目链接:Maximum Flow题目大意:给你一张图,第i个点和第j个点之间有一条容量为i^j的路,求最大流题目思路:找规律,每一层之间的差值由规律,然后写一些恶心的模拟就好了 #include <map> #include <set> #include <cmath> #include <queue> #include <stack> #include <vector> #include <cs

Nemaleswang的博客 468

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E.Maximum Flow(最大流算法,找规律)

  这道题解法是用最大流算法打表来找规律(看见数据范围是2~10^18就应该意识到这道题是找规律题了)。   最大流算法代码(其实是微调了一下我之前写的代码就拿来用了): #include<iostream> #include<cstdio> #include<vector> using namespace std; #define LL l...

weixin_30687811的博客 146

(2022昆明站icpc)F:Find the Maximum(思维)

思维

AC__dream的博客 756

2017 ACM西安网络赛 E题 Maximum Flow

ACM 西安网络赛 E题

Infinity的博客 748
上一篇: 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 F. Trig Function (切比雪夫多项式)
下一篇: 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 HDU 6208 1003 The Dominator of Strings(AC自动机)
cillyb
博客等级 码龄11年 225粉丝 497原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值