Codeforces CROC 2016 - Elimination Round

Facebook Hacker Cup 2015 Round 1 解题报告 Homework         求一个区间[A,B]中素因数个数为K的数有多少个。做法是dp。对每个数i,找到它的某一个素因数d,i的结果就由i/d推得。找的方法是修改筛法。 #include #include #include #include #include #include #include #include #include using namespace 阅读详情

C. Enduring Exodus

从左到右枚举人住的房间,牛住的房间不断往后推。

#include <cstdio>
#include <iostream>
#include <algorithm>


using namespace std;

char str[100010];

int Next[100010];

int calc(int pos,int l,int r){
    return max(r-pos,pos-l);
}

int main(){
    int n,k;
    cin>>n>>k;
    scanf("%s",str);
    for(int i=n-2;i>=0;i--){
        if(str[i+1]=='0'){
            Next[i]=i+1;
        }else{
            Next[i]=Next[i+1];
        }
    }
    int pos = 0;
    while(str[pos]!='0'){
        pos++;
    }
    int l = pos;
    int r = pos+1;
    int cnt = 0;
    while(1){
        if(str[r]=='0'){
            cnt++;
        }
        if(cnt==k)break;
        r++;
    }
    int ans = calc(pos,l,r);

    for(int i=Next[pos];i!=0;i=Next[i]){
        if(i>r){
            r=Next[r];
            l=Next[l];
        }
        if(r==0)break;
        ans = min(ans,max(r-i,i-l));
        while(i-l>r-i){
            if(r==0)break;
            ans = min(ans,max(r-i,i-l));
            r=Next[r];
            l=Next[l];
            if(r==0)break;
            ans = min(ans,max(r-i,i-l));
        }
        if(r==0)break;
    }
    cout<<ans<<endl;
    return 0;
} 

D. Robot Rapping Results Report

不妨把胜负当成点的出度和入度来看,读数据的时候维护点的度,当出现有一个点只有出度,一个点只有入度,其他的点均有出度和入度时,那两个特别的点肯定是最大的和最小的,删除顺序已知的点……如此循环直到只剩下0或1个点为止,就能认为是有序的了。

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

using namespace std;

const int maxn = 100010;

vector<int> win[maxn];
vector<int> lose[maxn];

int l[maxn];
int r[maxn];

int lcnt = 0;
int rcnt = 0;
int lrcnt = 0;

bool ban[maxn];

set<int> Set;

int main(){
    int n,m;
    int MAX = 0;
    int MIN = 0;

    cin>>n>>m;

    for(int i=1;i<=n;i++){
        Set.insert(i);
    }

    int N=n;

    int ans = -1;
    for(int i=1;i<=m;i++){
        int u,v;
        scanf("%d%d",&u,&v);

        if(ban[u] || ban[v])continue;
        win[u].push_back(v);
        lose[v].push_back(u);
        l[u]++;
        r[v]++;
        if(l[u]==1){
            lcnt++;
            if(r[u]){
                lrcnt++;
                Set.erase(u);
            }
        }
        if(r[v]==1){
            rcnt++;
            if(l[v]){
                lrcnt++;
                Set.erase(v);
            }
        }

        while(lrcnt == N-2 && lcnt==N-1 && rcnt==N-1){
            rcnt--;
            lcnt--;
            auto it = Set.begin();
            int winner = *it;
            it++;
            int loser = *it;
            Set.clear();
            if(l[loser]){
                swap(winner,loser);
            }

            ban[winner] = 1;
            ban[loser] = 1;
            for(int tt:win[winner]){
                if(ban[tt])continue;
                r[tt]--;
                if(r[tt]==0){
                    rcnt--;
                    if(l[tt]){
                        lrcnt--;
                        Set.insert(tt);
                    }
                }
            }

            for(int tt:lose[loser]){
                if(ban[tt])continue;
                l[tt]--;
                if(l[tt]==0){
                    lcnt--;
                    if(r[tt]){
                        lrcnt--;
                        Set.insert(tt);
                    }
                }
            }

            N-=2;
        }
        if(N<2){
            ans = i;
        }
    }

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

E. Intellectual Inquiry

考虑某个字符串, dp(i) 表示以字符 i 结尾的子序列的个数,那么在字符串后面添加字符j时, dp(j)=1+∑dp ,无论 j 是那个字符,dp(j)的结果都是一样的,所以我们总是可以选择 dp(j) 最小的那个 j 使得增益最大。又由于经过了取模,不好直接找到最小值,我们可以发现字符j如果出现得越早, dp(j) 肯定越小。

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

using namespace std;

#define ll long long 

char str[1000010];

ll dp[26];

const int mod = 1e9+7;

int lastAppear[26];

int main(){
    memset(lastAppear,-1,sizeof(lastAppear));
    int n,k;
    cin>>n>>k;
    scanf("%s",str);
    int m = strlen(str);

    ll sum = 0;

    for(int i=0;i<m;i++){
        lastAppear[str[i]-'a'] = i;
        ll tmp = dp[str[i]-'a'];
        dp[str[i]-'a'] = sum+1;
        dp[str[i]-'a'] %= mod;
        sum = 0;
        for(int j=0;j<k;j++){
            sum+=dp[j];
        }
    }


    for(int i=0;i<n;i++){
        // find min
        int MIN = 1e9;
        int minchar=0;
        for(int j=0;j<k;j++){
            if(lastAppear[j]<MIN){
                MIN = lastAppear[j];
                minchar = j;
            }
        }

        lastAppear[minchar] = m+i;
        ll tmp = dp[minchar];
        dp[minchar] = sum+1;
        dp[minchar] %= mod;
        sum = 0;
        for(int j=0;j<k;j++){
            sum+=dp[j];
        }
    }

    ll ans = 1;
    for(int i=0;i<k;i++){
        ans+=dp[i];
        ans%=mod;
    }

    cout<<ans<<endl;

    return 0;
}
Python爬虫实战:使用Scrapy+Playwright高效获取电力市场数据 本文将详细介绍如何使用Python构建一个高效的电力市场数据爬虫系统。我们将结合Scrapy框架和Playwright浏览器自动化工具,解决电力市场网站常见的反爬机制,实现数据的稳定抓取。文章包含完整的项目搭建流程、代码实现、数据处理方案以及部署建议,帮助读者掌握现代爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、电力市场、数据采集、反爬对策python复制下载# 基本字段region = scrapy.Field() # 区域。 阅读详情

相关推荐

OAK-D-Pro深度解析:从硬件融合到全天候SLAM实战

本文深度解析OAK-D-Pro硬件架构及其在SLAM领域的实战应用。作为SLAM的"六边形战士",OAK-D-Pro融合主动双目摄像头、结构光投射器、6轴IMU等传感器,实现全天候稳定工作。通过实测数据展示其在弱纹理环境、动态光照等复杂场景下的卓越表现,并提供SLAM实战技巧与开发指南,帮助开发者快速部署高效SLAM解决方案。

weixin_27244795的博客 183

CROC 2016 - Elimination Round (Rated Unofficial Edition) F - Cowslip Collections 数论 + 容斥

F - Cowslip Collections http://codeforces.com/blog/entry/43868这个题解讲的很好。。。 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define P...

weixin_30488313的博客 151

BFD+OSPF+FRR:构建高可用网络的核心铁三角

摘要:VRRP、OSPF、BFD和FRR协同实现网络高可用。VRRP负责网关冗余,OSPF确保路由可达,BFD提供毫秒级故障检测,FRR实现快速路径切换。故障时,BFD立即检测并通知OSPF,FRR在OSPF收敛前切换流量,VRRP完成网关切换(如需)。BFD采用异步模式动态建立,效率最高。该机制确保业务流量无缝切换,提升网络可靠性。

A516988的博客 753

CROC 2016 - Elimination Round (Rated Unofficial Edition) B. Mischievous Mess Makers 贪心

B. Mischievous Mess Makers 题目连接: http://www.codeforces.com/contest/655/problem/B Description It is a balmy spring afternoon, and Farmer John's n cows are ruminating about link-cut cacti in their stall...

weixin_33885676的博客 131

YOLO11实战 第056期-基于yolo11的无人机航拍铁路障碍物检测实战-数据集&源码&系统

召回率曲线帮助评估模型在目标检测任务中,检测到真正目标的能力。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。这条曲线显示了随着置信度的增加,每个类别的召回率先变化较小,然后在某个点之后迅速下降。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 157

Godot4 TileMap分层绘制全攻略:解决角色、树木遮挡混乱,打造正确视觉层级

本文详细介绍了Godot4 TileMap分层绘制技术,通过图层管理和Y-Sort功能解决2D游戏中角色与物体的遮挡问题。从基础图层设置到高级优化策略,帮助开发者打造符合自然视觉规律的场景层次,提升游戏沉浸感。特别针对TileMap和TileSet的使用提供了实用技巧和代码示例。

weixin_28717411的博客 510

CROC 2016 - Elimination Round (Rated Unofficial Edition) C. Enduring Exodus 二分

C. Enduring Exodus 题目连接: http://www.codeforces.com/contest/655/problem/C Description In an attempt to escape the Mischievous Mess Makers' antics, Farmer John has abandoned his farm and is traveling to...

weixin_30826761的博客 120

整车 EOL下线 测试系统介绍

整车下线(EOL)测试专门针对整车进行设计开发,是车企将组装好的整车交付客户前的 最后一道检测工序。EOL 测试针对的是整车下线测试,不同于零部件下线,是整车级别的下线 测试,测试过程关系整车的每个零部件,其测试质量直接影响到整车的质量好坏。因此,整车EOL测试是整车下线必不可少的测试过程.

王小奎的博客 5480

YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1869

【QNX+Android虚拟化方案】125 - 如何创建android-spare镜像

【QNX+Android虚拟化方案】125 - 如何创建android-spare镜像

|~~~热爱生活、努力学习的小伙汁~~~| 1092

CROC 2016 - Elimination Round (Rated Unofficial Edition) D. Robot Rapping Results Report 拓扑排序+二分...

题目链接: http://www.codeforces.com/contest/655/problem/D 题意: 题目是要求前k个场次就能确定唯一的拓扑序,求满足条件的最小k。 题解: 二分k的取值,做拓扑排序的时候只要每次只有一个元素没有前驱就可以唯一了。 #include<iostream> #include<cstring> #include&l...

weixin_30628077的博客 131

通信算法之334:无人机侦测-DJI 大疆云哨接收机系列

【代码】通信算法之334:DJI 大疆 云哨接收机算法流程。

leegang12的专栏 843

CodeForces - 645C Enduring Exodus (二分)

CodeForces - 645C Enduring Exodus Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description In an attempt to escape the

yanghui07216的博客 485

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

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万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

A Cube Master 3360

IEM模型,地表粗糙度模拟

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

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

2015 百度之星初赛1 解题报告

1001 超级赛亚ACMer         贪心。首先击败战斗力不大于m的最强者,每次去找可以增强战斗力,然后能击败的最强者,把自己战斗力增加到和他一样去打。如果能打败最强的对手,就可以了。 1002 找连续数         离散化,离线按k从1~1000递增的顺序,维护以每个位置为起点长度为k的最小值,最大值,以及是否有相同数。如果MAX-MIN=k-1且没有相同数,长度为k的

A Cube Master 1794

2015 ICPC 长春网赛 解题报告

只A了几道水题,还好晋级了。 07 The Water Problem         果然是水题,随便模拟一下就好了。为了题解完整性贴出来。 #include #include #include #include #include #include using namespace std; int a[1010]; int main(){

A Cube Master 1463

福州大学第十二届程序设计竞赛 解题报告

由于这个OJ比较蛋疼,比赛时提交的代码看不到,所以就不附代码了,只说思路。 A 非提的救赎         待补。 B 完美的数字         求一个区间内,所有数的“完美度”的和,完美度定义为数i能分解为多少组i=A*A*B(A         预处理算出每个数的平方、立方。写一个函数fun(x)计算区间1~x的结果,题目的答案就是fun(b)-fun(a-1)。在

A Cube Master 1429

Google Code jam Qualification Round 2015 解题报告

Problem A. Standing Ovation         题目说的是有许多观众,每个观众有一定的羞涩值,只有现场站起来鼓掌的人数达到该值才会站起来鼓掌,问最少添加多少羞涩值任意的人,才能使所有人都站起来鼓掌。         贪心模拟一下就好,添加的人默认让他们羞涩值为0,扫一遍,让加到刚好够就行。 #include #include #include #includ

A Cube Master 1342

Codeforces Round #291 (Div. 2) 解题报告 (A B C D)

A Chewbaсca and Number         贪心,每一位取t和9-t中较小的。注意首位不能为0。 #include #include #include #include #include #include #include #include #include #include using namespace

A Cube Master 1178

2012 ACM-ICPC 杭州站解题报告(4道签到题)

hdu 4461 The Power of Xiangqi         题意:

A Cube Master 1153

Codeforces Round #301 (Div. 2) 解题报告(ABCD)

A Combination Lock         n位0~9密码锁两种状态之间,问最少拨多少次。注意可能越过'0'。直接上代码。。 #include using namespace std; char num1[1010]; char num2[1010]; int main(){ int n; cin>>n; cin>>num1>>num2; int ans=0;

A Cube Master 1096
上一篇: ###修改标题
下一篇: Codeforces IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值