loli的搜索测试-5

2024-02-03 03:59
文章标签 搜索 测试 loli

本文主要是介绍loli的搜索测试-5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  今天早上听说不放假感觉很sad,又听说要考试感觉更sad了,早读的时候Juan_feng表示即使考也不会考虫食算,结果上午并没有考试,就自己做了几道题。不得不说做题的决定实在是太明智了,做NOIP历年真题,发现蓝题及以下的搜索题所剩不多,就做了一道引水入城(更巧的是今天洛谷的智推给我推了这个题),感觉思路很妙,唯一有一点不足就是90改到100的过程中只是机械的搬了题解的思路,并没有明白两种写法的区别。

  下午听说要放假,感觉非常开心,结果loli过来找我们说要考试...这就很sad了。点开题目文件一看,感到非常震惊。T1是英文题面,T2是...虫食算!T3是...引水入城!于是就开始做T2,T3,水完之后就开始看T1,首先看的是题目中给出的翻译,可是翻译的质量比较差以至于看不懂,就花了10分钟去看英文的题面,感觉非常不可做呢...后来觉得即使是暴力也得打打才行,所以写了挺长时间弄完了这道题,愉快的跑回了学长学姐们的机房。过了一会loli看到我们在这里,就说不要好高骛远,要脚踏实地的学习,不过我说我会做的题都做完了,于是就被批准留在这里。晚饭后并没有回我们的机房看成绩,然而老师把我们叫回去看。一点开测评包$180$,感觉布星,点开详细信息发现T1爆零,T2超时一个点,T3错了一个点,关键是和上午错的一样,所以说上午的题我果然还是没有理解呢。后来仔细想了一下,又写了总结,突然明白为什么会错了。

  在引水入城这道题中,一个比较重要的性质是每个点覆盖的区间是连续的,这个问题以前我是感性认识的,后来画了图才明白这个结论有一个前提是有解,所以在无解的情况下覆盖的区间不一定连续。在错误的写法中,我是这样判断无解时不能被覆盖的点的个数的:两重循环,外层循环沙漠点,内层循环河岸,用河岸覆盖区间的左右端点来卡沙漠点,如果所有的区间都无法覆盖证明这是一个无法被浇灌的点,但是现在我明白了,在无解的情况下用区间的左右端点去卡是不正确的,所以正确的方法是查看$vis$数组,看看每个沙漠点是否曾被访问过。

  后来发现T1的数据和题目描述不符,改了数据之后我惊奇的发现这题我竟然A了,总分达到了惊人的$280$,果然是暴力出奇迹,比较开心。

  T1 Painting A Board:http://bailian.openjudge.cn/practice/1691/

 1 # include <cstdio>
 2 # include <iostream>
 3 # include <cstring>
 4 # define R register int
 5 
 6 using namespace std;
 7 
 8 int m,n,ans;
 9 int a[20],b[20],c[20],d[20],co[20],g[105][105];
10 int fir[20][20],pai[20];
11 bool visc[21];
12 
13 void dfs(int x,int s,int colo)
14 {
15     if(x==n+1)
16     {
17         ans=min(ans,s);
18         return ;
19     }
20     if(s>=ans) return ;
21     bool f;
22     for (R i=1;i<=n;++i)
23     {
24         f=true;
25         if(pai[i]) continue;
26         for (R j=1;j<=n;++j)
27         {
28             if(fir[i][j]&&pai[j]==false) 
29             {
30                 f=false;
31                 break;
32             }
33         }
34         if(f==false) continue;
35         pai[i]=true;
36         if(co[i]==colo)
37             dfs(x+1,s,colo);
38         else
39             dfs(x+1,s+1,co[i]);
40         pai[i]=false;
41     }
42 }
43 
44 int main()
45 {
46     scanf("%d",&m);
47     while(m--)
48     {
49         ans=1000;
50         memset(co,0,sizeof(co));
51         memset(fir,0,sizeof(fir));
52         memset(g,0,sizeof(g));
53         scanf("%d",&n);
54         for (R i=1;i<=n;++i)
55         {
56             scanf("%d%d%d%d%d",&a[i],&b[i],&c[i],&d[i],&co[i]);
57             visc[co[i]]=true;    
58             for (R j=a[i]+1;j<=c[i];++j)
59                 for (R k=b[i]+1;k<=d[i];++k)
60                     g[j][k]=i;
61         }
62         for (R i=1;i<=n;++i)
63         {
64             if(a[i]==0) continue;
65             for (R j=b[i]+1;j<=d[i];j++)
66                 fir[i][g[a[i]][j]]=1;
67         }
68         for (R i=1;i<=20;++i)
69             if(visc[i]) dfs(1,1,i);
70         printf("%d\n",ans);
71     }
72     return 0;
73 }
Paintint A Board

 

  T2 虫食算:https://www.luogu.org/problemnew/show/P1092

  T3 引水入城:https://www.luogu.org/problemnew/show/P1514

 

  然后这里再加一个wzx dalao的测试总结作为结束:(他还没写 (他还是没写

 

  ---shzr

转载于:https://www.cnblogs.com/shzr/p/9245206.html

这篇关于loli的搜索测试-5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/672927

相关文章

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

hdu 4517 floyd+记忆化搜索

题意: 有n(100)个景点,m(1000)条路,时间限制为t(300),起点s,终点e。 访问每个景点需要时间cost_i,每个景点的访问价值为value_i。 点与点之间行走需要花费的时间为g[ i ] [ j ] 。注意点间可能有多条边。 走到一个点时可以选择访问或者不访问,并且当前点的访问价值应该严格大于前一个访问的点。 现在求,从起点出发,到达终点,在时间限制内,能得到的最大

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close