Cpp环境【NOIP2010提高组】【Vijos1777】【Code[VS]1066】【CQYZOJ1793】引水入城

Cpp环境【Uva1160】【Vijos2806】易爆物 【问题描述】   有一些简单化合物,每个化合物都由两种元素组成(每个元素用一个数字表示)。你是一个装箱工人,从实验员那里按照顺序依次把一些简单化合物装到车上。但这里存在一个安全隐患:如果车上存在k个简单化合物,正好包含k中元素,那么他们将组成一个易爆的混合物。为了安全起见,每当你拿到一个化合物时,如果它和已装车的化合物形成易爆混合物,你就应当拒绝装车。编程输出有多少个没有装车的化合物。【输入格式 阅读详情
【问题描述】

  在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政 区划十分特殊,刚好构成一个N行M列的矩形,如上图所示,其中每个格子都代表一座城 市,每座城市都有一个海拔高度。
  
  为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施 有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的 蓄水池中。因此,只有与湖泊毗邻的第1行的城市可以建造蓄水厂。而输水站的功能则是通 过输水管线利用高度落差,将湖水从高处向低处输送。故一座城市能建造输水站的前提,是 存在比它海拔更高且拥有公共边的相邻城市,已经建有水利设施。
  
  由于第N行的城市靠近沙漠,是该国的干旱区,所以要求其中的每座城市都建有水利 设施。那么,这个要求能否满足呢?如果能,请计算最少建造几个蓄水厂;如果不能,求干 旱区中不可能建有水利设施的城市数目。
  
【输入格式】

  输入的每行中两个数之间用一个空格隔开。 输入的第一行是两个正整数N和M,表示矩形的规模。
  接下来N行,每行M个正整数,依次代表每座城市的海拔高度。

【输出格式】

  输出有两行。如果能满足要求,输出的第一行是整数1,第二行是一个整数,代表最少 建造几个蓄水厂;如果不能满足要求,输出的第一行是整数0,第二行是一个整数,代表有 几座干旱区中的城市不可能建有水利设施。

【输入样例】

3 6
8 4 5 6 4 4
7 3 4 3 3 3
3 2 2 1 1 2

【输出样例】

1
3

【样例说明】

这里写图片描述
在上图中用实线框出的三个位置分别建立一座蓄水厂,同时最后一行对应颜色的城市为该蓄水厂所能够接通的城市。不保证存在唯一最优解。

【数据范围】 

这里写图片描述

【原题传送矩阵】

重庆一中题库原题传送矩阵
Vijos题库 原题传送矩阵
Code[VS]题库 原题传送矩阵

【思路梳理】

  可能是笔者技术不到家的缘故,多次调试总是第三组数据会超时,最后强行使用手工队列BFS才跌跌撞撞过了此题。
  网上大神说是能用最短路径找,,,对此我是一脸懵逼的。还是来点易懂的BFS+贪心的区间归并嘛。

  先BFS一遍,看是否存在某个沙漠城市无论从哪一个临海城市出发都不能到达,同时用一个变长数组记录下从每一个临海城市出发可以到达的沙漠城市的id。BFS想必读者都会写,不再赘述(第三组超时的请用手工队列谢谢,STL队列速度堪忧)BFS以后,就可以统计出是情况1(可以向任意一个沙漠城市输水)还是情况0(存在至少1个沙漠城市无论如何都不能得到输水,即vis[i]=0)。如果是情况0,统计vis=0的结点个数输出即可;如果是情况1就需要进行贪心的区间归并。

  先给出如下的一个结论:对于情况1,任何一个临海城市能够到达的沙漠城市必然是连续的。如图所示:
  这里写图片描述
将1城所能够覆盖的所有沙漠城市涂为绿色,2城能覆盖的城市涂为橙色,都能覆盖的部分仍然标记为绿色。如果最后一行第八行上的第五个格子不能够被1城覆盖到,那么一定有height[8][5]>height[8][4]和height[8][6]。那么由此一来,想要到达(8,5)就必须从上面的路通过红色格子过来(或者无论如何都要与绿色路径交叉),即使得红色格子(6,5)的高度小于橙色路径(6,5)的上一个点(5,5),且高于绿色路径的上一个点(6,4)的权值。显然对于橙色路径、绿色路径来说,如果经过了同一个城市,那么权值是不会变化的,即绿色路径上的(6,5)权值一定等于橙色路径上(6,5)的权值,形成了矛盾。
  所以说就可以贪心地使用区间覆盖来解答此题。

【Cpp代码】
#include<cstdio>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstring>
#define maxn 505
using namespace std;
int movex[]={-1,1,0,0};
int movey[]={0,0,-1,1};
int n,m,height[maxn][maxn];
vector<int>num[maxn];
struct data{int x,y;};
struct interval{int left,right;}p[maxn];

void read(int &x)
{
    char ch=getchar();x=0;
    while(ch<'0' || ch>'9') ch=getchar();
    while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
}


bool inq[maxn][maxn];
data q[maxn*maxn];
int front,rear;
void BFS(data st,int id)
{
    memset(inq,false,sizeof(inq));
    rear=front=1;
    q[rear++]=st;
    inq[st.x][st.y]=true;
    while(rear!=front)
    {
        int x=q[front].x,y=q[front++].y;
        for(int i=0;i<4;i++)
        {
            int xx=x+movex[i],yy=y+movey[i];
            if(xx<1 || yy<1 || xx>n || yy>m)    continue;
            if(height[xx][yy]>=height[x][y] || inq[xx][yy]) continue;
            q[rear++]=(data){xx,yy};
            inq[xx][yy]=true;
        }
        if(x==n)    
        {
            num[id].push_back(y);
            vis[y]=true;
        }
    }
}

void solve()
{
    for(int i=1;i<=m;i++)   BFS((data){1,i},i);
    bool ok=true;int tot=0;
    for(int i=1;i<=m;i++)if(!vis[i])    ok=false,tot++;
    if(!ok){printf("0\n%d",tot);return;}
    else
    {
        for(int i=1;i<=m;i++)
        {
            sort(num[i].begin(),num[i].end());
            if(num[i].size()==0)    continue;
            p[i].left=num[i][0],p[i].right=num[i][num[i].size()-1];
        }
        int i=1,s=1,ans=0;
        while(i<=m && s<=m)
        {
            int last=-1;
            while(p[i].left<=s && i<=m)
            {
                last=max(last,p[i].right);
                i++;
            }
            ans++;
            s=last+1;
        }
        cout<<"1\n"<<ans;
    }
}

int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)   read(height[i][j]);
    solve();
    return 0;
}
Cpp环境【NOIP201307】货车运输 【问题描述】 A国有n座城市,编号从1到n,所有城市之间有m条双向道路。每一条道路对车辆都有重量限制。现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 【输入格式】 第一行有两个用空格隔开的整数n,m,表示A国有n座城市和m条道路。接下来m行每行3个整数x、y、z,每两个整数之间用一个空格隔开,表示从x号城市到y号城市有一条限重为z的道路。x不 阅读详情

相关推荐

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

【NOIP2010提高组】引水入城

题目背景 NOIP2010提高组试题。 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个 N 行 M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取...

ETO的博客 1893

学习记录(十一)--Pattern Recognition投稿记录

上一周特别忽然通知统计建模要答辩,确定是否晋级国赛,一直在准备答辩的事情,所以上一周没有总结周汇报,深刻检讨!!!不过结果是好的,我们组第二名晋级哦。这周主要是跟大家分享一下我投稿PR(Pattern Recognition)的一个时间线,以及投稿后的工作。一、PR从投稿到接收的时间线2025.4.3 Major Revision(ddl4.23) 当时正在弄比赛和另一个着急推进的文章2025.5.30 Minor Revision 这次小修基本上只有一些格式和简单一点点问题。

qq_54949944的博客 1917

noip2010T4引水入城

在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N行M列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第1行的城市可以建造

Ostmbh的博客 866

运维面试常见问题

对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。优缺点:优点:利用索引可以加速对数据的检索,索引是可以唯一的,创建索引允许指定单个列或者多个列缺点:减慢了数据录入速度,同时也增加了数据库的尺寸大小。

asdmjy123的博客 1370

【仿真】Carla Python API实战:从零搭建自动驾驶测试环境

本文详细介绍了如何使用Carla Python API从零搭建自动驾驶测试环境。通过Carla仿真平台,开发者可以构建高度逼真的城市环境和车辆物理模型,利用Python API实现传感器配置、数据采集、场景构建及自动驾驶算法集成。文章还分享了实际项目中的调试技巧和性能优化经验,帮助读者快速掌握自动驾驶仿真测试的核心技术。

weixin_29050513的博客 213

2010noip提高组解题报告

https://www.luogu.org/problem/show?pid=1514 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。 为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,分别为蓄水厂和输...

weixin_30527323的博客 200

智能化运维(AIOps)

• 调查显示,54.79%的企业当前着重关注智能运维的质量领域(包括异常检测、告警收敛、根因分析、 故障处置等)能力建设,其次45.77%的企业关注效率领域,45.49%的企业关注成本领域,30.82%的 企业关注安全领域。从目前的发展情况来看,现阶段AIOps能力大多集中在L2级别, 主要以系统辅助分析,帮助人工进行决策和操作为主,较为领先的 能力实践可以达到L3级别,而L4和L5级别随着AIOps的技术发展 和能力的逐步增强,将是未来智能运维能力建设的发展方向和目标。

追求更专业的设计 3095

NOIP 2000 引水入城题解

题目描述 [NOIP2010] 引水入城 ★★★ 输入文件:flow.in 输出文件:flow.out 简单对比 时间限制:1 s 内存限制:128 MB在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个N行M列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市

C_Lyr的博客 889

基于 ESP32 的智慧图书馆图书定位与借阅管理系统

本文设计的基于 ESP32 的智慧图书馆图书定位与借阅管理系统,以低成本、模块化、易部署为核心优势,融合 UWB 精准定位、RFID 自动识别、WiFi 无线通信技术,解决了传统图书馆的痛点问题。

weixin_42300449的博客 99

软考中级-软件设计师 知识点整理(一篇就过了 建议收藏)

软考中级-软件设计师上午题知识点总结

片言可决讼,半纸能缚龙 17万+

CPP【北京大学暑期课《ACM/ICPC竞赛训练》】高山滑雪

【问题描述】     Michael喜欢滑雪这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。     Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子。   一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条

天地皆逆旅,你我本行人。 1757

仿真学习系列(二):ADS仿真直观理解方波与频谱分量的关系

在高速电路设计中,我们常常听到一句话:“信号其实不是电压在传输,而是频率在传播。” 这句话看似抽象,却揭示了信号世界的核心本质——任何时域波形,都可以被拆解为一系列不同频率的正弦波。 那么,一个看似简单的方波,究竟由哪些频率成分组成?为什么在示波器上,有的方波上升沿又快又“方”,而有的却“圆润”得多?这些差异背后,隐藏的正是高频分量的力量。 本文将通过使用 Keysight ADS,从零搭建仿真电路,直观地观察方波与其谐波成分之间的关系。

案例文章,高速信号 813

Cpp环境【BZOJ1626】【Usaco2007 Dec】【Vijos 1693】 修建道路

【问题描述】            Farmer John最近得到了一些新的农场,他想新修一些道路使得他的所有农场可以经过原有的或是新修的道路互达(也就是说,从任一个农场都可以经过一些首尾相连道路到达剩下的所有农场)。有些农场之间原本就有道路相连。   所有N个农场(用1..N顺次编号)在地图上都表示为坐标为(X_i,Y_i)的点(),两个农场间道路的长度自然就是代表它们的点之间的距离。现在F

天地皆逆旅,你我本行人。 1270

FPGA入门200例(17):如何阅读RTL原理图(Schematic)?将Verilog代码与门级电路对应

本文针对FPGA开发新手常见误区,重点讲解了RTL原理图的重要性和阅读方法。文章指出,仅通过仿真验证代码会导致板级测试异常,而RTL原理图能直观呈现Verilog代码对应的硬件结构(门电路、寄存器、多路选择器等)。通过"识别基础元件→跟踪信号路径→验证逻辑关系"的三步法,新手可以建立代码与硬件的映射思维,排查冗余逻辑、意外锁存器等错误。文章还结合Vivado/Quartus工具操作指南和典型代码案例,帮助读者掌握从代码到硬件实现的转换过程,避免混淆RTL与门级原理图、忽略信号位宽等常见误

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 196

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Cpp环境【POJ2435】【CQYZOJ3034】【USACO2005 U S Open Silver】Navigating the City城市交通

Description 【问题描述】   A dip in the milk market has forced the cows to move to the city. The only employment available is in the venerable field of taxi-driving. Help the cows learn their way around

天地皆逆旅,你我本行人。 1157

visio安装包

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

cpp环境【Uva10129】【VIJOS2863】玩弄单词

【问题描述】    有一些秘密的门包含着非常有趣的单词迷题, 考古学家队伍必须解决它们才能够打开大门。 因为没有其他方法能打开这些门, 所以解决那些迷题对我们非常重要。   在每个门上有很多个有磁力的n个盘子,盘子上面写着单词。 必须重新移动放置这些盘子,让它们形成一个队列:队列中,除了第一个单词,每个单词的开头和上一个单词的结尾字母一样。例如, motorola的后面可以接上acm

天地皆逆旅,你我本行人。 1040

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

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Cpp环境【TYVJ1153】【Code[VS]4093】【CQYZOJ16874】 间谍网络

【问题描述】   由于外国间谍的大量渗入,国家安全正处于高度的危机之中。如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B。有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报。所以,如果我们能够收买一些间谍的话,我们就可能控制间谍网中的每一分子。因为一旦我们逮捕了一个间谍,他手中掌握的情报都将归我们所有,这样就有可能逮捕新的间谍,掌握新的情报。  我们的反间谍机

天地皆逆旅,你我本行人。 1017

Cpp环境【POJ3622】【Usaco2008 Jan Silver】【Vijos1874】Telephone Lines架设电话线

Description 【问题描述】 Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncooperative, so he needs to pay for some of the cables required to connect his farm t

天地皆逆旅,你我本行人。 1009

Cpp环境【Usaco 3.2.6】【Vijos1251】Павлов的香甜黄油

【问题描述】   农夫John发现了做出全威斯康辛州最甜的黄油的方法:把糖放在一片牧场上,他知道他所有的N只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。   农夫John很狡猾。就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,好让他可以在晚上挤奶。   农夫John知道开始时,每只奶牛都在各自喜欢的牧场(一个牧场不一

天地皆逆旅,你我本行人。 859

Cpp环境【POJ 2375】【Vijos1642】雪场缆车

【问题描述】   约翰的表哥罗恩生活在科罗拉多州。他进来打算教他的奶牛们滑雪,但是奶牛们非常害羞,不敢在游人如织的度假胜地滑雪。没办法,他只好自己建滑雪场了。   罗恩的雪场可以划分为W列L行,每个方格都有一个特定的高度H。奶牛可以在相邻邻方格间滑雪,而且不能由低到高滑。  为了保证任意方格可以互通,罗恩打算造一些直达缆车。缆车很强大,可以连接任意两个方格,而且是双向的。而且同一个方格可以造多台缆

天地皆逆旅,你我本行人。 733

【POJ1094】【VIJOS3014】变量排序

【问题描述】 把不同的变量进行升序排序用小于操作符命令实现的。例如由A 和 C 在本题中,你将得到若干条小于操作符命令,形如A 的格式,请你确定利用这些命令,能否得到一个唯一的升序序列。     【输入格式】            第1行为整数n,m,n(2 <= n<= 26)表示参与排序的是前n个大写字母,m表示给出命令的条数。     【输出格式】

天地皆逆旅,你我本行人。 724

cpp环境【VIJOS1698】导游

【问题描述】    Lebmond有一家旅游公司。他的任务是带一些游客去一个遥远的城市。一些城市之间有双向道路,每条路线规定了自己的最大乘客数目。Mr.he有一份包含城市间道路的状况和公交车最大载重容量的 地图(保证任意两点之间能相互到达)。往往无法一次性地将所有乘客带往目的地。例如:在下面7个城市的地图中,边代表道路,每条边上的数字代表这条道路上公交车的最大载客量。    如果Leb

天地皆逆旅,你我本行人。 704

Cpp环境【Usaco 2008】劣草岛屿

【问题描述】 贝茜像其它奶牛一样正在吃草,她注意到她得到的是一个平于海平面的牧场。海拔 只有1 米或者更高的草不那么美味。沿着这些劣草继续咀嚼,她意识到,这没有食欲的食物长成两侧的丘陵,形成了青翠美味丰富草地海洋中的一系列劣质 草小岛 。贝茜穿上她的实验服,决心测定她的牧场有多少劣草小岛。她画出一张画有被分成 R (1 < R <= 1,000) 行、C (1 < C<= 1,000)列的

天地皆逆旅,你我本行人。 644

CPP环境【VIJOS1686】极品飞车

【问题描述】           FC星有许多城市,城市之间通过一种奇怪的双向高速公路进行交流,每条公路都对行驶在上面的飞车限制了固定的速度,同时FC星人对飞车的“舒适度”有特殊要求,即乘坐过程中最高速度与最低速度的差越小乘坐越舒服,但对时间却没那么多要求。要注意的是FC人的飞车能瞬间提速或降速。现在需要你找出一条城市间的最舒适的路径。 【输入格式】            第一行有2个正

天地皆逆旅,你我本行人。 638
上一篇: Cpp环境【CQYZOJ3145】【CQOI2916】学生宿舍依法集会权遭受侵害案例
下一篇: Cpp环境【SDUT1128】【Code[VS]1809】【CQYZOJ1823】河床
cqyz_Lebmond
博客等级 码龄10年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值