热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Comp20211218

importcom.sun.tools.javac.util.Assert;importcom.sun.tools.javac.util.Pair;importjavax.jws.

import com.sun.tools.javac.util.Assert;
import com.sun.tools.javac.util.Pair;

import javax.jws.soap.SOAPBinding;
import javax.swing.text.html.Option;
import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Stream;
/*

aabaacabaac
4
a.aa*c
aa.b
a*b
b*a

*/
public class Main {
private static boolean beFound = false;
private static boolean meetStart = false;
private static void resolve(int[][] dp, int x, int y, String raw, String pat, boolean isMatched) {
int row = pat.length();
int col = raw.length();
if (x + 1 if (pat.charAt(x + 1) == '*') {
meetStart = true;
if (x + 1 == row - 1) {
System.out.println(dp[x][y] + " " + (y + 1));
beFound = true;
return;
}
if (y > 0 && dp[x + 1][y] > 0) {
return;
}
int weight = dp[x][y];
int temp = y;
while (temp dp[x + 1][temp] = weight;
resolve(dp, x + 1, temp, raw, pat, isMatched);
if (beFound) {
return;
}
temp ++;
}
} else {
if (!isMatched) {
if (pat.charAt(x) == '*' && (pat.charAt(x + 1) == '.' || pat.charAt(x + 1) == raw.charAt(y))) {
if (y > 0 && dp[x + 1][y] > 0) {
return;
}
dp[x + 1][y] = dp[x][y];
resolve(dp, x + 1, y, raw, pat, true);
}
} else if (y + 1 if (pat.charAt(x + 1) == '.' || pat.charAt(x + 1) == raw.charAt(y + 1)) {
if (y > 0 && dp[x + 1][y + 1] > 0) {
return;
}
dp[x + 1][y + 1] = dp[x][y];
if (x + 1 == row - 1) {
System.out.println(dp[x][y] + " " + (y + 2));
beFound = true;
return;
}
resolve(dp, x + 1, y + 1, raw, pat, true);
}
}
}
}
}
public static void main(String[] args) throws ClassNotFoundException {
Scanner cn = new Scanner(System.in);
String raw = cn.nextLine();
int cnt = Integer.parseInt(cn.nextLine());
for (int i = 0; i String pat = cn.nextLine();
int row = pat.length();
int col = raw.length();
int[][] dp = new int[row][col];
beFound = false;
meetStart = false;
for (int n = 0; n if (pat.charAt(0) == '.' || pat.charAt(0) == raw.charAt(n)) {
dp[0][n] = n + 1;
}
if (pat.charAt(0) == '*') {
dp[0][n] = 1;
}
}
boolean matched = pat.charAt(0) != '*';
for (int m = 1; m if (dp[m-1][0] == 0) {
break;
}
if (pat.charAt(m) == '*') {
dp[m][0] = dp[m-1][0];
}
if (pat.charAt(m-1) == '*' && !matched && (pat.charAt(m) == '.' || pat.charAt(m) == raw.charAt(0))) {
matched = true;
dp[m][0] = dp[m-1][0];
}
}
if (dp[row - 1][0] > 0) {
System.out.println("1 1");
continue;
}
for (int n = 0; n if (dp[0][n] > 0) {
System.out.println("meet");
resolve(dp, 0, n, raw, pat, pat.charAt(0) != '*');
if (beFound || meetStart) {
break;
}
}
}
if (!beFound) {
System.out.println("0 0");
}
}
}
}

推荐阅读
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 将JavaScript文件嵌入HTML文档是Web开发中的基本操作。常见的方法是通过在HTML文件中使用``标签来引用外部的.js文件。这种方法不仅保持了代码的整洁性,还便于管理和维护。此外,还可以利用模块化脚本和异步加载技术进一步提升页面性能。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • 深入理解 Java 控制结构的全面指南 ... [详细]
  • 在Python中,是否可以通过使用Tkinter或ttk库创建一个具有自动换行功能的多行标签,并使其宽度能够随着父容器的变化而动态调整?例如,在调整NotePad窗口宽度时,实现类似记事本的自动换行效果。这种功能在设计需要显示长文本的对话框时非常有用,确保文本内容能够完整且美观地展示。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
author-avatar
云海雨岛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有