Bestcoder Round#45

1001

给定数n,要我们求该数的二进制中有多少组1, 相邻的1称为1组, 直接位运算摸你即可

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <algorithm>
 5 #include <iostream>
 6 #include <queue>
 7 #include <stack>
 8 #include <vector>
 9 #include <map>
10 #include <set>
11 #include <string>
12 #include <math.h>
13 using namespace std;
14 #pragma warning(disable:4996)
15 typedef long long LL;                   
16 const int INF = 1<<30;
17 /*
18 
19 */
20 
21 int main()
22 {
23     int t;
24     LL n;
25     scanf("%d", &t);
26     while (t--)
27     {
28         scanf("%I64d", &n);
29         int ans = 0;
30         bool flag = true;
31         while (n)
32         {
33             if ((n & 1))
34             {
35                 if (flag)
36                 {
37                     ans++;
38                     flag = false;
39                 }
40             }
41             else
42                 flag = true;
43 
44             n >>= 1;
45         }
46         printf("%d\n", ans);
47     }
48     return 0;
49 }
View Code

 

1002

比赛的时候,一直认为求逆序对,要用树状数组做, 就YY出了一个树状数组的解法。

我把询问按照L从小到大排序,然后分为两种情况

对于第一种情况,我们只要将左边的数从树状数组中减去,然后加上右边的数即可。

对于第二种情况,我们将数状数组情况, 重新建树状数组

其实比赛完之后,仔细想想,如果存在很多第二种情况(应该最多只有1000种,因为N<=1000) , 那么时间复杂度是N*N*logN, 应该是勉强可以过, 或者直接TLE

不过自己YY出来这种想法, 还是挺好的。

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 #include <algorithm>
  5 #include <iostream>
  6 #include <queue>
  7 #include <stack>
  8 #include <vector>
  9 #include <map>
 10 #include <set>
 11 #include <string>
 12 #include <math.h>
 13 using namespace std;
 14 #pragma warning(disable:4996)
 15 typedef long long LL;                   
 16 const int INF = 1<<30;
 17 /*
 18 
 19 */
 20 struct Node
 21 {
 22     int l, r;
 23     int id;
 24     bool operator<(const Node &rhs)const
 25     {
 26         if (l == rhs.l)
 27             return r < rhs.r;
 28         return l < rhs.l;
 29     }
 30 }Q[100000+10];
 31 int a[1000 + 10];
 32 int b[1000 + 10];
 33 map<int, int> mark;
 34 int ans[100000 + 10];
 35 int sum[1000 + 10];
 36 int lowbit(int x)
 37 {
 38     return x & (-x);
 39 }
 40 void modify(int pos, int val, int n)
 41 {
 42     while (pos <= n)
 43     {
 44         sum[pos] += val;
 45         pos += lowbit(pos);
 46     }
 47 }
 48 int getSum(int pos)
 49 {
 50     int ret = 0;
 51     while (pos > 0)
 52     {
 53         ret += sum[pos];
 54         pos -= lowbit(pos);
 55     }
 56     return ret;
 57 }
 58 int main()
 59 {
 60     int n, q;
 61     while (scanf("%d%d", &n, &q) != EOF)
 62     {
 63         memset(sum, 0, sizeof(sum));
 64         for (int i = 0; i < n; ++i)
 65         {
 66             scanf("%d", &a[i]);
 67             b[i] = a[i];
 68         }
 69         for (int i = 0; i < q; ++i)
 70         {
 71             scanf("%d%d", &Q[i].l, &Q[i].r);
 72             Q[i].l--;
 73             Q[i].r--;
 74             Q[i].id = i;
 75         }
 76         sort(a, a + n);
 77         sort(Q, Q + q);
 78         n = unique(a, a + n) - a;
 79         //printf("%d\n", n);
 80         for (int i = 0; i < n; ++i)
 81         {
 82             mark[a[i]] = i + 1;
 83             //printf("%d %d\n", a[i], i + 1);
 84         }
 85         int preL = 0;
 86         int preR = 0;
 87         int t;
 88         int tmp = 0;
 89         for (int i = 0; i < q; ++i)
 90         {
 91             if (preR - 1 > Q[i].r)//第二种情况, 清空树状数组
 92             {
 93                 memset(sum, 0, sizeof(sum));
 94                 preR = Q[i].l;
 95                 preL = Q[i].l;
 96                 tmp = 0;
 97             }
 98             for (int j = preL; j < Q[i].l; ++j)//减去左边的区间
 99             {
100                 tmp -= getSum(mark[b[j]]-1);
101                 modify(mark[b[j]], -1, mark[a[n - 1]]);
102                 preL = Q[i].l;
103                 
104             }
105             
106             for (int j = preR; j <= Q[i].r; ++j)
107             {
108                 
109                 modify(mark[b[j]], 1, mark[a[n-1]]);
110                 tmp += getSum(mark[a[n-1]])-getSum(mark[b[j]]);
111             }
112             preR = Q[i].r + 1;
113             ans[Q[i].id] = tmp;
114         }
115         for (int i = 0; i < q; ++i)
116             printf("%d\n", ans[i]);
117     }
118     return 0;
119 }
View Code

 

正解应该是。

设ans1[i][j] 为区间i-->j,包含a[i]的逆序对数,  首先我们暴力算好ans1[i][j] ,时间复杂度为O(N*N)

设ans2[i][j] 为区间i-->j中的逆序对数,

那么ans2[i][j] = ans1[i][j] + ans[i+1][j] +...+ans[j][j]

优化一下就是, 如果ans2[i+1][j] 已经算好了,  那么ans2[i][j] = ans2[i+1][j] + ans1[i][j];

所以这个的时间复杂度也是O(N*N),而且 ans1 和ans2可以合成一个数组

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <algorithm>
 5 #include <iostream>
 6 #include <queue>
 7 #include <stack>
 8 #include <vector>
 9 #include <map>
10 #include <set>
11 #include <string>
12 #include <math.h>
13 using namespace std;
14 #pragma warning(disable:4996)
15 typedef long long LL;                   
16 const int INF = 1<<30;
17 /*
18 
19 */
20 const int N = 1000 + 10;
21 int ans[N][N]; 
22 int a[N];
23 int main()
24 {
25     int n, q;
26     while (scanf("%d%d", &n, &q) != EOF)
27     {
28         for (int i = 1; i <= n; ++i)
29             scanf("%d", &a[i]);
30 
31         //这里的ans[i][j] 表示区间i-->j, 包含元素a[i]的逆序对数
32         for (int i = 1; i <= n; ++i)
33         for (int j = i; j <= n; ++j)
34             ans[i][j] += ans[i][j - 1] + (a[i] > a[j] ? 1 : 0);
35 
36         //那么 ans[i][j] 要表示区间i-->j的逆序对数时, ans[i][j] += ans[i+1][j] + ans[i+2][j]+...+ans[j][j]
37         // 如果ans[i+1][j]已经算出来了,  那么ans[i][j] += ans[i+1][j] 即可,  因为贡献是后缀和性质的
38         for (int j = 1; j <= n; ++j)
39         for (int i = j; i >= 1; --i)
40             ans[i][j] += ans[i + 1][j];
41         int l, r;
42         while (q--)
43         {
44             scanf("%d%d", &l, &r);
45             printf("%d\n", ans[l][r]);
46         }
47     }
48     return 0;
49 }
View Code

 

1003

给我们一棵树,每个节点都有权值, 有两个操作

0 x y ,  将节点x的权值改为y

1 x y   询问x->y 的路径上, 是否有权值的次数出现奇数次(保证最多只有一个奇数次) 如果没有,输出-1, 如果有, 输出那个权值

任意两点的路径, 可以用lca求出, 然后要求权值是不是出现奇数次, 可以用异或,   a^a = 0  ,  a^a^a=a,

然而这并没有什么用,TLE, 如果树退化成链, 那么每次询问的时间复杂度是O(N),每次询问的复杂度要O(logN)才行

  1 #pragma comment(linker, "/STACK:102400000,102400000")
  2 #include <stdio.h>
  3 #include <string.h>
  4 #include <stdlib.h>
  5 #include <algorithm>
  6 #include <iostream>
  7 #include <queue>
  8 #include <stack>
  9 #include <vector>
 10 #include <map>
 11 #include <set>
 12 #include <string>
 13 #include <math.h>
 14 using namespace std;
 15 #pragma warning(disable:4996)
 16 typedef long long LL;                   
 17 const int INF = 1<<30;
 18 /*
 19 RE
 20 */
 21 const int N = 100000 + 10;
 22 struct Edge
 23 {
 24     int to, next;
 25 }g[N];
 26 
 27 int value[N], head[N], e, parent[N], depth[N];
 28 void addEdge(int a, int b)
 29 {
 30     g[e].to = b;
 31     g[e].next = head[a];
 32     head[a] = e++;
 33 }
 34 void dfs(int u, int fa, int d)
 35 {
 36     depth[u] = d;
 37     for (int i = head[u]; i != -1; i = g[i].next)
 38     {
 39         int v = g[i].to;
 40         if (v == fa) continue;
 41         dfs(v, u,d + 1);
 42     }
 43 }
 44 
 45 int solve(int x, int y)
 46 {
 47     if (x == y)
 48         return value[x];
 49     int ret = 0;
 50     ret ^= value[x];
 51     //ret ^= value[y];
 52     if (depth[x] < depth[y])
 53         swap(x, y); 
 54     int t = y;
 55     int d = depth[x];
 56     while(d > depth[y])
 57     {
 58         x = parent[x];
 59         d--;
 60         ret ^= value[x];
 61     }
 62     while (x!=y)
 63     {
 64         x = parent[x];
 65         y = parent[y];
 66         ret ^= value[x];
 67         ret ^= value[y];
 68     }
 69     if (t != y)
 70         ret ^= value[y];
 71     return ret;
 72 
 73 }
 74 int main()
 75 {
 76     int t, n, q, a, b, op;
 77     scanf("%d", &t);
 78     while (t--)
 79     {
 80         memset(parent, -1, sizeof(parent));
 81         memset(depth, 0, sizeof(depth));
 82         memset(head, -1, sizeof(head));
 83         e = 0;
 84         scanf("%d%d", &n, &q);
 85         for (int i = 1; i < n; ++i)
 86         {
 87             scanf("%d%d", &a, &b);
 88             addEdge(a, b);
 89             addEdge(b, a);
 90             parent[b] = a;
 91 
 92         }
 93         int root = 1;
 94         while (parent[root] != -1)
 95             root = parent[root];
 96         dfs(root,-1,1);
 97         for (int i = 1; i <= n; ++i)
 98         {
 99             scanf("%d", &value[i]);
100             value[i]++;
101         }
102         for (int i = 0; i < q; ++i)
103         {
104             scanf("%d%d%d", &op, &a, &b);
105             if (op == 0)
106                 value[a] = b;
107             else
108             {
109                 int ret = solve(a, b);
110                 printf("%d\n", ret ? ret-1 : -1);
111             }
112         }
113     }
114     return 0;
115 }
View Code

 

题解说这题要用树链剖分, 然后我并不懂

转载于:https://www.cnblogs.com/justPassBy/p/4591701.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值