B. Falling Apples 题解(2016 ICPC Mid-Central USA Region)

本文详细解读了2016年ICPC中部美国赛区的‘Falling Apples’题目,探讨如何解决苹果不能向下掉落,使其到达最低位置的算法策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

INPUT
3 3 
aaa
#.. 
..#
OUTPUT
a..
#.a 
.a#

INPUT
4 5 
aaa.a 
aa.a.
a.a.. 
...a.
OUTPUT
.....
a.... 
aaaa.
aaaaa

题意:落苹果,#不能往下落,让a落到最低。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
const int mod=1e9+10;
const int M=5e4 + 10;
char mapp[M][15];
int vis[M][15];
int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    for(int i=1; i<=n; i++)
    {
        scanf("%s",mapp[i]);
    }
    for(int j=0; j<m; j++)
    {
        int sum=0;
        for(int i=1; i<=n; i++)
        {
            if(mapp[i][j] == 'a')
                sum++;
            if(mapp[i][j] == '#')
            {
                vis[i][j] = 2;
                for(int k=i-1; k>=1; k--)
                {
                    if(sum == 0)
                        break;
                    else
                        vis[k][j] = 1,sum--;
                }
            }
        }
        for(int k=n; k>=1; k--)
        {
            if(sum == 0)
                break;
            else
                vis[k][j]=1,sum--;
        }
    }
    for(int i=1; i<=n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(vis[i][j] == 2)
                printf("#");
            else if(vis[i][j] == 1)
                printf("a");
            else
                printf(".");
        }
        printf("\n");
    }
    return 0;
}

 

. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.5.9) 2025-03-29 23:30:44.927 INFO 10080 --- [ main] com.example.SpringbootApplication : Starting SpringbootApplication using Java 1.8.0_341 on DESKTOP-EUNUR1G with PID 10080 (D:\毕业设计\manager\springboot\target\classes started by DELL in D:\毕业设计\manager) 2025-03-29 23:30:44.929 INFO 10080 --- [ main] com.example.SpringbootApplication : No active profile set, falling back to default profiles: default 2025-03-29 23:30:45.709 INFO 10080 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http) 2025-03-29 23:30:45.716 INFO 10080 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-03-29 23:30:45.716 INFO 10080 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.56] 2025-03-29 23:30:45.800 INFO 10080 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-03-29 23:30:45.800 INFO 10080 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 836 ms Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. Parsed mapper file: 'file [D:\毕业设计\manager\springboot\target\classes\mapper\AdminMapper.xml]' Parsed mapper file: 'file [D:\毕业设计\manager\springboot\target\classes\mapper\NoticeMapper.xml]' ,------. ,--. ,--. ,--. | .--. ' ,--,--. ,---. ,---. | '--' | ,---. | | ,---. ,---. ,--.--. | '--' | ' ,-. | | .-. | | .-. : | .--. | | .-. : | | | .-. | | .-. : | .--' | | -
最新发布
03-30
<think>嗯,用户想查看Spring Boot应用的日志信息以及MyBatis映射文件解析的情况,用的是v2.5.9版本。首先,我需要回忆一下Spring Boot的日志配置方式。记得默认用的是Logback,可以通过application.properties或者YAML文件来配置。比如logging.level.root可以设置根日志级别,还有logging.file.name指定日志文件路径。 然后用户提到MyBatis的Mapper文件解析,这部分可能需要开启MyBatis的DEBUG日志,这样才能看到SQL语句和参数。通常MyBatis的日志实现会和Spring Boot整合,可能需要设置org.apache.ibatis的日志级别为DEBUG或者TRACE。同时,MyBatis的映射文件如果解析有问题,可能是XML文件有错误,这时候日志里应该会有相关提示,比如解析异常的具体位置。 接下来是Tomcat嵌入式服务器的初始化过程。用户可能想了解Tomcat启动时的日志信息,比如端口号、上下文路径等。需要配置Tomcat相关的日志组,比如logging.group.tomcat=org.apache.catalina,org.apache.coyote,org.apache.tomcat,然后设置日志级别为DEBUG或者TRACE,这样可以跟踪Tomcat的启动细节。 另外,用户可能遇到日志信息不够详细的情况,需要检查配置是否正确,是否覆盖了默认配置。比如是否启用了@EnableWebMvc导致自动配置被覆盖,或者有没有自定义的日志配置类影响了日志输出。还要注意Spring Boot版本是否对某些日志配置有影响,比如v2.5.9是否有不同的配置方式。 可能用户还遇到了具体的错误,比如MyBatis的映射文件没找到或者解析错误,这时候需要指导他们如何通过日志定位问题,比如检查XML文件的位置是否正确,命名空间是否匹配,或者SQL语句是否正确。对于Tomcat初始化问题,可能需要查看是否有端口冲突,或者Servlet配置错误。 总结一下,步骤应该是先配置日志级别,查看相关组件的日志输出,然后根据日志中的错误信息进行排查。同时,确保依赖项正确,比如MyBatis和Tomcat的starter是否引入,版本是否兼容。可能还需要检查Nacos的配置是否影响到了日志配置,参考引用中的内容,比如历史配置或者分组配置的方法。</think>### Spring Boot v2.5.9 日志分析与组件跟踪步骤 #### 一、日志配置与查看 1. **基础日志配置** 在 `application.properties` 中添加以下配置: ```properties # 全局日志级别 logging.level.root=info # 指定包或类日志级别 logging.level.org.springframework.web=debug logging.level.org.apache.ibatis=debug # 日志文件路径(可选) logging.file.name=logs/app.log ``` 通过 `logging.level.sql=debug` 可跟踪 SQL 执行细节[^1]。 2. **MyBatis Mapper 文件解析跟踪** - 开启 MyBatis 日志: ```properties logging.level.com.example.mapper=debug logging.level.org.mybatis=debug ``` - 检查 XML 映射文件加载: ```log DEBUG o.m.s.SqlSessionFactoryBean - Parsed mapper file: file [mapper/UserMapper.xml] ``` 若出现 `Invalid bound statement` 错误,需检查 XML 文件路径和命名空间[^3]。 #### 二、Tomcat 初始化过程跟踪 1. **嵌入式 Tomcat 日志** 添加配置以查看 Tomcat 启动细节: ```properties logging.group.tomcat=org.apache.catalina,org.apache.coyote,org.apache.tomcat logging.level.tomcat=trace ``` 启动时会输出: ```log INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) DEBUG o.a.catalina.core.StandardService - Starting service [Tomcat] ``` 2. **端口与线程池配置** 在 `application.properties` 中: ```properties server.port=8080 server.tomcat.threads.max=200 ``` #### 三、常见问题排查 1. **日志未生效** - 检查是否引入 `spring-boot-starter-logging` 依赖 - 避免 `@EnableWebMvc` 覆盖默认配置 2. **MyBatis 映射文件加载失败** - 确认 `mapper-locations` 配置正确: ```properties mybatis.mapper-locations=classpath:mapper/*.xml ``` - 检查 XML 中 `namespace` 与接口全限定名是否一致 3. **Tomcat 启动异常** - 查看端口占用情况: ```bash netstat -ano | findstr :8080 ``` - 检查 `server.tomcat.*` 参数是否符合系统资源限制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值