暑期集训已经接近尾声,一年六场的暑期萌新联赛也已经结束了,进步是比较明显的,从一开始的七八百名到三四百名,虽然拿不出手,但是这也算对两个月的集训的算法初学者的我一个交代。

比赛传送门:河南萌新联赛2025第(六)场:郑州大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

整数商店的购物之旅

题目链接:L-整数商店的购物之旅_河南萌新联赛2025第(六)场:郑州大学

这道题是签到题(吧),很容易就能看出来是一道二分答案的题目,需要注意的是由于数据很大,那么我们就要转换为字符串,用字符串的大小来判断位数,不过我用log10一直WA不知道为啥。

// Problem: 整数商店的购物之旅
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/L
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; 
int a,b,x;
bool check(int mid)
{int cnt = 0;string s = to_string(mid);int len = s.size();// int len = log10(mid) + 1;int res = a * mid + b * len;return res <= x;
}
void solve()
{cin>>a>>b>>x;if(x < a + b){cout<<"0"<<endl;return ;}int l = 1,r = 1e9;while(l < r){int mid = (l + r + 1) >> 1LL;if(check(mid)) l = mid;else r = mid - 1;}// cout<<min(1000000000LL,l)<<endl;cout<<l<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

数字支配

题目链接:E-数字支配_河南萌新联赛2025第(六)场:郑州大学

这道题很明显是一道贪心的思维题,能输出9就尽量输出9即可。

// Problem: 数字支配
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/E
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{string s;cin>>s;int index = 0;for(int i=0;i<s.size();i++){index = i;if(s[i] == '9') cout<<s[i];else break;}// index++;if(index < s.size()-1) for(int i=index;i<s.size() - 1;i++) cout<<'9';else cout<<s[s.size() - 1];
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

外卖大战

紧跟时事,题目链接:I-外卖大战_河南萌新联赛2025第(六)场:郑州大学

比较大的一个模拟题,按照题目要求模拟即可,注意在选择当前平台之后后面的平台的未选次数就应该加加,然后每次加之后都进行是否达到三次的判断即可通过。

// Problem: 外卖大战
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/I
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{int n;cin>>n;vector<int> a(n+1);int mt = 0,elm = 0,jd = 0;int an1 = 0,an2 = 0,an3 = 0;int cnt1 = 0,cnt2 = 0,cnt3 = 0;for(int i=1;i<=n;i++) cin>>a[i];// sort(a.begin() + 1,a.end(),greater<int> ());// sort(a.begin() + 1,a.end());for(int i=1;i<=n;i++){for(int op=1;op<=3;op++){if(op == 1){// if(cnt1 >= 3) mt += 2,cnt1 -= 3;if(mt < a[i]) cnt1++;else {cnt1 = 0,mt ++,an1 ++;cnt2++,cnt3++;if(cnt2 >= 3) elm += 2,cnt2 -= 3;if(cnt3 >= 3) jd += 2,cnt3 -= 3;break;}if(cnt1 >= 3) mt += 2,cnt1 -= 3;}else if(op == 2){// if(cnt2 >= 3) elm += 2,cnt2 -= 3;if(elm < a[i]) cnt2++;else {cnt2 = 0,elm ++,an2 ++;cnt3++;if(cnt3 >= 3) jd += 2,cnt3 -= 3;break;}if(cnt2 >= 3) elm += 2,cnt2 -= 3;}else if(op == 3){// if(cnt3 >= 3) jd += 2,cnt3 -= 3;if(jd < a[i]) cnt3++;else {cnt3 = 0,jd ++,an3 ++;break;}if(cnt3 >= 3) jd += 2,cnt3 -= 3;}}// cout<<"美团:优惠"<<mt<<" 订单 "<<an1<<"未选"<<cnt1<<endl;// cout<<"饿了么:优惠"<<elm<<" 订单 "<<an2<<"未选"<<cnt2<<endl;// cout<<"京东:优惠"<<jd<<" 订单 "<<an3<<"未选"<<cnt3<<endl;}cout<<an1<<' '<<an2<<' '<<an3<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

还在分糖果!

题目链接:K-还在分糖果!_河南萌新联赛2025第(六)场:郑州大学

这道题是几个月前的ICPC训练赛的原题(原题是求的9,这道题求的是7),因为那时候太懒了没有补题,导致今天被这道题卡了好久,幸好在比赛结束前通过了这道题。

打表之后不难发现规律:

  • 第9个数为 10
  • 第81个数为100
  • 第729个数为1000
  • .........
  • 也就是说:第9 ^ i个数为10 ^ i !

那么我们就可以用两个数组讲所对应的映射存起来,然后从大到小遍历,不断累加ans即可。

注意遍历到这一位如果这一位上大于等于7的话就需要++。

// Problem: 还在分糖果!
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/K
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{int f[14],s[14];int x = 1,y = 1;for(int i=1;i<=13;i++){x *= 9;y *= 10;f[i] = x;s[i] = y;}int n;cin>>n;int m = n;int ans = 0;for(int i=13;i>=0;i--){int x = f[i];int y = s[i];if(n >= x){if(n / x >= 7) {ans += pow(10,i);}ans += (n / x) * y;n %= x;}}if(n > 0){if(n >= 7) ans ++;ans += n;}cout<<ans<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;cin>>T;while(T--) solve(); return 0;
} 

由于上一道题卡了好久,通过之后就没再开其他的题了,接下来就是:

穿过哈气之门

这道题的题目有点难读懂,实际上就是遍历整个给定的数组,判断有多少个子区间中包含了m种的物品,所以很明显这道题可以用滑动窗口来写,如果当前物品的种类数量小于m的话就一直不断地移动右指针,知道当前窗口中的物品种类数量等于了m,这时候以当前窗口为基础,包含这个窗口的后面的所有窗口都符合条件,所以直接让ans += (n - r + 1),然后我们就可以滑动左指针,不断地用这个思想来更新累加ans即可。

// Problem: 穿过哈气之门
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/D
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; void solve()
{int n,m;cin>>n>>m;vector<int> a(n+1);for(int i=1;i<=n;i++) cin>>a[i];map<int,int> mp;int ans = 0;int l = 1,r = 0;while(r < n){while(mp.size() < m && r < n){r ++;mp[a[r]] ++;}if(mp.size() == m)ans += (n - r + 1);while(l < r && mp.size() == m){mp[a[l]] --;if(mp[a[l]] == 0) mp.erase(a[l]);l ++;if(mp.size() == m)ans += (n - r + 1);}}cout<<ans<<endl;
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

凹包

这是今天的重点!之前打的XCPC训练赛的时候出现过凸包类的题目,那时候感觉这个算法有点冷门就没有去学,今天就吃了懒的亏!所以今天就好好整理一下这道题。

首先和凸包相关的知识就是叉积:

我们用叉积来计算两个向量所组成的内角,对凸包来说,叉积为负数的点为凸顶点,即:

我们对输入的点进行排序,(当然这道题给出的点是有序)然后就是构建这个凸包,分为先构建下凸包再构建上凸包,然后判断凸包中的凸节点的数量是否等于n+1来进行判断是否是凸包,而这道题判断的是凹包,那么我们就只判断凸节点的数量是否小于等于n即可。

// Problem: 凹包
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/116216/J
// Memory Limit: 2048 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include <bits/stdc++.h>
using namespace std;
#define int long long 
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define pii pair<int,int>
#define fi first
#define se second
#define YES cout<<"Yes"<<endl;
#define NO cout<<"No"<<endl;
#define lbt(x) ((x) & (-x)) const int INF = 0x3f3f3f3f;
const int inf = 1e18; 
const int N = 2e5 + 10;
pii a[N];
bool cmp(pii x,pii y)
{return (x.fi != y.fi ? x.fi < y.fi : x.se < y.se);
}
double dis(pii a,pii b,pii c)
{return (b.fi - a.fi) * (c.se - a.se) - (b.se - a.se) * (c.fi - a.fi);
}
pii tu[N];
int top = 0;
void solve()
{int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i].fi>>a[i].se;if(n == 3){NOreturn ;}sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){while(top > 1 && dis(tu[top],tu[top-1],a[i]) <= 0) top --;tu[++top] = a[i];}int t = top;for(int i=n-1;i>=1;i--){while(top > t && dis(tu[top],tu[top-1],a[i]) <= 0) top --;tu[++top] = a[i];}if(top <= n) YESelse		 NO
//	cout<<fixed<<setprecision(x)<< ; 
}signed main()// Don't forget pre_handle!
{IOSint T=1;
//	cin>>T;while(T--) solve(); return 0;
} 

下面整理了一些有关凸包的模板,ICPCer可用:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);const double eps = 1e-8;  // 浮点数精度误差// 点结构体 - 简单版本,无运算符重载
struct Point {double x, y;
};// 比较函数:按x坐标排序,x相同按y排序
bool point_compare(Point a, Point b) {if (fabs(a.x - b.x) < eps)return a.y < b.y;return a.x < b.x;
}// 计算两点之间的距离
double point_dist(Point a, Point b) {double dx = a.x - b.x;double dy = a.y - b.y;return sqrt(dx * dx + dy * dy);
}// 计算向量叉积 (ab × ac)
// 返回值 > 0: c在ab左侧
// 返回值 < 0: c在ab右侧  
// 返回值 = 0: 三点共线
double point_cross(Point a, Point b, Point c) {return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}// Andrew算法求凸包
// 返回凸包上的点(逆时针顺序)
vector<Point> get_convex_hull(vector<Point> points) {int n = points.size();if (n <= 2) return points;  // 点太少直接返回// 按x坐标排序sort(points.begin(), points.end(), point_compare);vector<Point> hull(2 * n);  // 存储凸包点int top = 0;  // 凸包栈顶指针// 构建下凸壳for (int i = 0; i < n; i++) {// 当栈中至少有两个点,且新点使凸性不满足时,弹出栈顶点while (top >= 2 && point_cross(hull[top - 2], hull[top - 1], points[i]) <= 0) {top--;}hull[top++] = points[i];}// 构建上凸壳int lower_size = top;  // 下凸壳的大小for (int i = n - 2; i >= 0; i--) {while (top > lower_size && point_cross(hull[top - 2], hull[top - 1], points[i]) <= 0) {top--;}hull[top++] = points[i];}// 调整大小(去掉重复的起点)if (top > 1) {top--;  // 去掉重复的起点}hull.resize(top);return hull;
}// 计算多边形面积(凸包或任意多边形)
// 要求点按顺序给出(顺时针或逆时针)
double get_polygon_area(vector<Point> poly) {double area = 0;int n = poly.size();for (int i = 0; i < n; i++) {int j = (i + 1) % n;area += poly[i].x * poly[j].y - poly[j].x * poly[i].y;}return fabs(area) / 2.0;
}// 判断点是否在凸多边形内部或边界上
bool is_point_in_convex(Point p, vector<Point> convex) {int n = convex.size();// 检查点是否在凸包的每条边的左侧(或线上)for (int i = 0; i < n; i++) {int j = (i + 1) % n;if (point_cross(convex[i], convex[j], p) < -eps) {return false;  // 点在边的右侧,不在凸包内}}return true;
}// 旋转卡壳求凸包直径(最远点对距离)
double get_convex_diameter(vector<Point> convex) {int n = convex.size();if (n == 1) return 0;if (n == 2) return point_dist(convex[0], convex[1]);double max_dist = 0;int j = 1;  // 对跖点指针for (int i = 0; i < n; i++) {int next_i = (i + 1) % n;// 寻找对跖点:使得三角形面积最大的点while (point_cross(convex[i], convex[next_i], convex[(j + 1) % n]) > point_cross(convex[i], convex[next_i], convex[j])) {j = (j + 1) % n;}// 更新最大距离double dist1 = point_dist(convex[i], convex[j]);double dist2 = point_dist(convex[next_i], convex[j]);max_dist = max(max_dist, max(dist1, dist2));}return max_dist;
}// 计算凸包周长
double get_convex_perimeter(vector<Point> convex) {double perimeter = 0;int n = convex.size();for (int i = 0; i < n; i++) {int j = (i + 1) % n;perimeter += point_dist(convex[i], convex[j]);}return perimeter;
}void solve() {int n;cin >> n;vector<Point> points(n);for (int i = 0; i < n; i++) {cin >> points[i].x >> points[i].y;}// 求凸包vector<Point> convex = get_convex_hull(points);// 输出凸包信息cout << "凸包点数: " << convex.size() << endl;cout << "凸包面积: " << fixed << setprecision(2) << get_polygon_area(convex) << endl;cout << "凸包周长: " << fixed << setprecision(2) << get_convex_perimeter(convex) << endl;cout << "凸包直径: " << fixed << setprecision(2) << get_convex_diameter(convex) << endl;
}signed main() {IOSint T = 1;// cin >> T;while (T--) {solve();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96182.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96182.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96182.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2-1.Python 编码基础 - 基础运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符)

一、算术运算符 1、基本介绍编号运算符说明示例输出结果1两数相加10 20302-两数相减10 - 20-103*两数相乘&#xff0c;或者返回一个被重复若干次的字符串10 * 202004/两数相除10 / 200.55//两数相除并返回商的整数部分9 // 246%两数相除并返回余数10 % 507**幂运算10 ** 21002…

CMOS知识点 MOS管不同工作区域电容特性

知识点14&#xff1a;MOSFET的电容主要来源于其物理结构&#xff1a;栅氧层电容&#xff1a;栅极&#xff08;G&#xff09;与衬底&#xff08;B&#xff09;、沟道、源&#xff08;S&#xff09;、漏&#xff08;D&#xff09;之间隔着二氧化硅绝缘层&#xff0c;自然形成电容…

预测性维护+智能优化:RK3568+FPGA方案在储能行业的应用

在储能行业&#xff0c;RK3568FPGA方案通过预测性维护和智能优化技术&#xff0c;显著提升系统可靠性和经济性。该方案采用异构架构&#xff08;FPGA处理高速信号采集&#xff0c;RK3568负责策略计算与通信管理&#xff09;&#xff0c;实现微秒级响应和精准控制。‌26一、预测…

工业4.0时代,耐达讯自动化Profibus转光纤如何重构HMI通信新标准?“

在智能制造与工业4.0浪潮下&#xff0c;HMI&#xff08;人机界面&#xff09;作为设备与操作员之间的“桥梁”&#xff0c;承担着实时数据显示、设备监控及交互控制的核心职能。然而&#xff0c;传统Profibus总线在HMI连接中常因电磁干扰、传输距离限制等问题&#xff0c;导致画…

SpringClound——网关、服务保护和分布式事务

一、网关网络的关口&#xff0c;负责请求的路由、转发、身份验证server:port: 8080 spring:cloud:nacos:discovery:server-addr: 192.168.96.129:8848gateway:routes:- id: item-serviceuri: lb://item-servicepredicates:- Path/items/**,/search/**- id: user-serviceuri: lb…

【C++】模版(初阶)

目录 一. 函数模版 1. 格式 原理 2. 函数模版的实例化 二. 类模板 void Swap(int& left, int& right) {int temp left;left right;right temp; }void Swap(double& left, double& right) {double temp left;left right;right temp; }void Swap(char&…

InfluxDB 开发工具链:IDE 插件与调试技巧(二)

四、利用 IDE 插件提升开发效率 4.1 代码编写技巧 在使用安装了 InfluxDB 插件的 IDE 进行代码编写时&#xff0c;我们可以充分利用插件提供的代码导航和智能提示功能&#xff0c;来显著提高编写 InfluxDB 相关代码的效率和准确性。 以一个涉及多个 Measurement 和复杂查询条…

定制开发开源AI智能名片S2B2C商城小程序:场景体验新维度与四重目标达成

摘要&#xff1a;本文聚焦于定制开发开源AI智能名片S2B2C商城小程序&#xff0c;探讨其在场景体验领域的应用与价值。通过深入分析场景体验的最高境界——深体验、强认知、高传播、关系深化这四个目标&#xff0c;阐述该小程序如何凭借自身特性与功能&#xff0c;在商业场景中实…

开源 GIS 服务器搭建:GeoServer 在 Linux 系统上的部署教程

GeoServer 是一个开源的地理信息服务服务器&#xff0c;可以发布地图、矢量数据和栅格数据。 1. 更新系统 sudo apt update && sudo apt upgrade -y2. 安装 Java 11 GeoServer 需要 Java 运行环境&#xff0c;这里用 OpenJDK 11。 sudo apt install openjdk-11-jdk…

前端面试通关:Cesium+Three+React优化+TypeScript实战+ECharts性能方案

前端面试题详解与更多面试题 WebGLCesiumThree 1. 自我介绍 回答要点&#xff1a; 教育背景和工作经验技术栈和专长领域参与过的重点项目个人优势和学习能力职业规划 示例&#xff1a; “我是一名有前端开发经验的工程师&#xff0c;熟练掌握React、Vue等主流框架&#x…

集成电路学习:什么是Object Tracking目标跟踪

Object Tracking:目标跟踪 Object Tracking,即目标跟踪,是计算机视觉领域的一个重要研究方向,它专注于在视频帧序列中连续地监测和定位一个或多个目标对象的位置。以下是对目标跟踪技术的详细解析: 一、定义与目的 定义: 目标跟踪是指在视频序列中,通过特定的算法…

深入理解计算机系统

参考书籍 8-18 处理器体系结构不同于冯诺依曼与哈佛体系 压栈与退栈与理解c等高级语言的工作原理息息相关&#xff0c;也是常用的攻击手段 Buffer Overflow的主要技术基础 day2 继续读前言之类的 本书前言 这本书&#xff0c;讲述应用程序员如何能够利用系统知识来编写更好…

LLM 中 token 简介与 bert 实操解读

一、什么是 LLM&#xff1f; LLM&#xff0c;全称为 Large Language Model&#xff08;大语言模型&#xff09;&#xff0c;是一种基于神经网络&#xff08;主要是 Transformer 结构&#xff09;的大规模自然语言处理&#xff08;NLP&#xff09;模型。其核心能力在于理解、生成…

【运维心得】三步更换HP笔记本电脑外壳

目录 准备工作 第一步&#xff1a;拆卸电池与后盖 第二步&#xff1a;处理隐藏螺丝 第三步&#xff1a;断开内部排线 总结一下 今天又碰到了两台HP的笔记本&#xff0c;一台外壳完好&#xff0c;但是无法开机&#xff0c;判断是主板问题。另外一台外壳有损坏&#xff0c;但…

深入 Linux 网络(一) -- 网卡队列

文章目录网卡网卡的核心功能网卡的关键技术单队列网卡多队列网卡查看网卡信息ifconfigethtool查看网卡队列Linux 查看中断绑定网卡中断查询查看中断绑定的 cpu总结1. 默认情况&#xff08;单队列网卡&#xff09;2. 多队列网卡3. 如何查看和配置绑定关系&#xff1f;4. 性能优化…

HTTP 1.0, 2.0 和 3.0 有什么区别?

HTTP/1.0 就像是“一问一答”的电话&#xff0c;每次打电话&#xff08;请求&#xff09;都得先拨号&#xff08;建立连接&#xff09;&#xff0c;说完一句话&#xff08;发送数据&#xff09;就挂断&#xff08;关闭连接&#xff09;&#xff0c;再打下一通电话。效率比较低。…

无畏契约手游上线!手机远控模拟器畅玩、抢先注册稀有ID!

终于来了&#xff01;《无畏契约》手游今天已经全平台上线&#xff01;保留了端游经典的英雄技能与射击体验&#x1f3ae;&#xff3b;新服开启&#xff0c;ID争夺战一触即发&#xff3d;《无畏契约》手游备受FPS玩家期待&#xff0c;累计获得超6000万线上预约&#xff01;每次…

《WINDOWS 环境下32位汇编语言程序设计》第4章 第一个窗口程序

4.1 开始了解窗口4.1.1 窗口是什么窗口是什么&#xff1f;大家每天在使用Windows&#xff0c;屏幕上的一个个方块就是一个个窗口&#xff01;那么&#xff0c;窗口为什么是这个样子呢&#xff1f;窗口就是程序吗&#xff1f;1.使用窗口的原因回想一下DOS时代的计算机屏幕&#…

Mybatis执行sql流程(二)之加载Mapper

Mybatis加载Mapper注册方式注册时机特点MapperScanBean定义阶段注册接口定义批量注册&#xff0c;推荐方式Mapper (接口注解)同 MapperScan需每个接口单独标注XML 配置 <mapper>MyBatis 初始化时传统方式&#xff0c;不依赖 Spring 容器SqlSessionTemplate 直接获取调用时…

基于 JSP+Mysql实现MVC房屋租赁系统

基于 MVC 的房屋租赁系统的设计与实现摘 要&#xff1a;房屋租赁管理系统与网络相结合&#xff0c;给用户提供更加周到和人性化的服务。网站模式为 MVC 模式&#xff0c;基于 MySQL 数据库,采用 JSP&#xff0c;Session 绘画跟踪、JavaScript 等技术,实现了普通用户可以浏览、查…