E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ACM算法
ACM算法
分类(要学习的东西还很多)
ACM所有算法数据结构栈,队列,链表哈希表,哈希数组堆,优先队列双端队列可并堆左偏堆二叉查找树Treap伸展树并查集集合计数问题二分图的识别平衡二叉树二叉排序树线段树一维线段树二维线段树树状数组一维树状数组N维树状数组字典树后缀数组,后缀树块状链表哈夫曼树桶,跳跃表Trie树(静态建树、动态建树)AC自动机LCA和RMQ问题KMP算法图论基本图算法图广度优先遍历深度优先遍历拓扑排序割边割点强连通分
还是太年轻
·
2024-02-15 09:11
ACM算法
目录
ACM所有算法数据结构栈,队列,链表哈希表,哈希数组堆,优先队列双端队列可并堆左偏堆二叉查找树Treap伸展树并查集集合计数问题二分图的识别平衡二叉树二叉排序树线段树一维线段树二维线段树树状数组一维树状数组N维树状数组字典树后缀数组,后缀树块状链表哈夫曼树桶,跳跃表Trie树(静态建树、动态建树)AC自动机LCA和RMQ问题KMP算法图论基本图算法图广度优先遍历深度优先遍历拓扑排序割边割点强连通分
龍木
·
2024-02-15 09:41
AcWing 1170. 排队布局 (差分约束)
整理的算法模板:
ACM算法
模板总结(分类详细版)当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。农夫约翰有NN头奶牛,编号从11到NN,沿一条直线站着等候喂食。
Aloof__
·
2024-02-01 19:16
基础算法——图论
#
差分
#
差分约束
[
ACM算法
学习] 诱导排序与 SA-IS算法
学习自诱导排序与SA-IS算法-riteme.site为了简化一些操作,定义#是字典序最小的字符,其字典序小于字母集里任意字符,并且将其默认作为每个字符串的最后一个字符,即作S[|S|]SA-IS算法SA-IS算法是基于诱导排序这种思想。基本思想就是将问题的规模缩小,通过解决更小的问题,获取足够信息,就可以快速的解决原始问题。所以,这一过程需要递归处理子问题。算法基本框架:问题一个一个来解决后缀类
Waldeinsamkeit41
·
2024-01-14 21:07
学习
[
acm算法
学习] 后缀数组SA
学习自B站up主kouylan定义后缀是包含最后个字母的子串把字符串str的所有后缀按字典排序,sa[i]表示排名为i的后缀的开头下标如何求解SA倍增的方法先把每个位置开始的长度为1的子串排序,在此基础上再把长度为2的子串排序(长度为2的子串就是前面算过的长度为1的子串再加上后面的一位,第i位的和i+1),再把长度为4,8,16,32...(两个两个拼)直到串的末尾,也就是排到了后缀。如何从2^(
Waldeinsamkeit41
·
2024-01-13 20:19
学习
第一类,第二类Stirling数,Bell数模板 来自(http://blog.csdn.net/sr_19930829/article/details/40888349)
[组合数学]第一类,第二类Stirling数,Bell数标签:
ACM算法
组合数学Stiring数2014-11-0710:322176人阅读评论(0)收藏举报版权声明:本文为博主原创文章,未经博主允许不得转载
Z_X_B_233
·
2023-12-28 14:16
模板
【
ACM算法
】-- 图论篇 - 并查集
第一题:此篇是图论的开篇:并查集,简要的说一下并查集的相关知识。定义,并查集的定义是由集合衍生而来,用来表示某些元素是否属于同一集合,如果存在于同一集合,则其拥有共同的祖先。存储结构,存储结构是用双亲表示法来存储,以一维数组的形式存在。合并,并查集在判断集合操作时,只涉及到合并操作,而合并操作,是将其中一棵树的根节点的双亲节点变为另一棵树的根节点。这样两棵树就合并成一棵树了。优化操作,如果只是如上
猪猪传奇
·
2023-12-17 00:48
第四题-abb 【第六届传智杯程序设计挑战赛解题分析详解复盘】(Java&Python&C++实现)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-27 02:43
ACM
算法题库
java
python
c++
abb
传智杯abb
传智杯
第五题-kotori和素因子【第六届传智杯程序设计挑战赛解题分析详解复盘】(Java&Python&C++实现)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-26 16:39
ACM
算法题库
java
python
c++
kotori和素因子
传智杯
第六题-红和蓝【第六届传智杯程序设计挑战赛解题分析详解复盘】(Java&Python&C++实现)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-26 16:39
ACM
算法题库
java
python
c++
红和蓝
传智杯
红和蓝传智杯
第一题-字符串拼接【第六届传智杯程序设计挑战赛解题分析详解复盘】(C/C++实现)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-26 16:22
ACM
算法题库
c语言
c++
开发语言
字符串拼接
传智杯
3.红色和紫色-【第六届传智杯程序设计挑战赛解题分析详解复盘】(Java&Python&C++实现)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-26 16:21
ACM
算法题库
java
python
c++
传智杯
红色和紫色
决胜
ACM算法
竞赛:掌握Python编程的基石
前言编程竞赛,尤其是算法竞赛,一直是计算机科学领域中的精彩领域之一。无论你是准备参加ACM竞赛、GoogleCodeJam,还是仅仅为了提高自己的编程技能,本笔记将为你提供Python算法竞赛的基础知识和技巧。Python是一种广泛使用的编程语言,具有直观的语法和强大的标准库。本笔记将介绍Python中的基本语法、控制流、数据结构、算法、输入输出、常用模块、调试技巧以及实战演练。从基础知识到高级算
friklogff
·
2023-11-06 02:46
python
LeetCode
算法
算法
python
acm
学习历程_基础_精通部分_达到手搓的程度
1.计算机网络(更新版)1.1计算机网络-43题1.22.操作系统(更新版)3.
ACM算法
(更新版)4.数据库(更新版)5.业务开发算法(更新版)6.分布式类(更新版)7.设计模式(更新版)8.项目经历
平凡@之路
·
2023-11-04 05:23
学习
传智杯-21算法赛初赛B组题目详细解法解析-AB题(C/C++、Python、Java)
欢迎来到
ACM算法
题库专栏在
ACM算法
题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。
一见已难忘
·
2023-11-03 20:57
ACM
算法题库
算法
c语言
c++
传智杯
Oracle通过局域网进行连接访问的设置
作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主擅长领域:全栈工程师、爬虫、
ACM算法
公众号:知识浅谈网站:vip.zsqt.cc在本地Windows下装好了Oracle
知识浅谈
·
2023-10-25 10:50
oracle
数据库
AcWing 143. 最大异或对 (Trie)
整理的算法模板:
ACM算法
模板总结(分类详细版)在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少?输入格式第一行输入一个整数N。
Aloof__
·
2023-10-08 20:34
基础算法——数据结构
ACM算法
笔记(三)背包问题_01背包
首发csdn,链接:https://blog.csdn.net/Colicsin/article/details/115403831问题描述:*现在给你一个容量为V的背包,有N个物品,其中第i件物品的重量为wi,价值为vi,每件物品只可以拿一次,问在有限的容量内,最多可以拿到多少价值的物品。*问题分析:对于每一个物品,都有两种策略:拿或不拿。读到这里,是不是脑海中有一个清晰的想法?DFS!确实,这
Colicsin
·
2023-09-08 16:20
(万字,细细阅读)竞赛算法入门必经算法模型(附带题目链接和模板)
文章前言,一个普通的
ACM算法
竞赛选手。以前只知道写题,却没有自己弄一个算法流程,思考许久,决定整理一下算法,先从入门算法入手,如有不足,望指出。
平凡@之路
·
2023-08-20 18:29
算法学习路线规划
算法
c++
数据结构
ACM算法
竞赛中在编辑器中使用输入输出样例-CPH
通用方法我们可以在编辑器中创建三个文件,一个是main.cpp,一个是test.in,一个是test.out分别用来写代码,输入输入数据,显示输出数据这种方法的好处是不需要插件,在任何编辑器中都可以实现,例如Devc++,sublime,vscode,clion…可以在比赛的时候使用,例如篮球杯,天梯赛。。。以Clion为例:文件结构长这样,然后使用freopen来读取文件和写入文件,加上ifnd
重生之我是cxk
·
2023-08-13 21:11
ACM-
ICPC
算法
编辑器
c++
ACM算法
笔记(一)模拟算法【详细解析】
Tips:什么是模拟算法?模拟算法有没有什么严格的定义呢?模拟算法到底用来做什么呢?笔者:无论是noip还是icpc又或是各个网站的训练赛、模拟赛,总是脱离不了“模拟题”,所谓的模拟题,运用的“模拟算法”,其实并没有什么完全准确的定义。模拟算法,用一句老话说,就是“照着葫芦画瓢”;官方化的诠释则是:根据题目表述进行筛选提取关键要素,按需求书写代码解决实际问题。(还是老话好理解吧哈哈哈哈)模拟算法一
筱雨丶Colicsin
·
2023-08-13 21:41
ACM算法笔记
算法
acm竞赛
【
ACM算法
竞赛日常训练】【奇♂妙拆分】【区区区间间间】【小AA的数列】数学 | 位运算 | 前缀和
(优质好文持续更新中……)阅读原文获得更好阅读体验:【
ACM算法
竞赛日常训练】DAY16【奇♂妙拆分】【区区区间间间】【小AA的数列】数学|位运算|前缀和奇♂妙拆
2201_75761617
·
2023-08-13 05:06
算法
【腾讯云 FinOps Crane 集训营】Crane平台介绍与实践
作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家,51CTO明日之星擅长领域:全栈工程师、爬虫、
ACM算法
Crane平台介绍与实践总结⛳⛳⛳Crane简介Crane是一个开源的容器编排工具
知识浅谈
·
2023-06-10 00:18
服务/框架/技术
腾讯云
crane
finops
k8s
云原生
[趣味编程]老鼠试药问题!(老鼠:wdnmd)
这个题不是什么
ACM算法
题,只是我在生活中无意间看到的一个比较好玩的问题题目做法我们把100瓶药用二进制进行编号第一瓶:0000001第二瓶:0000010第三瓶:0000011第四瓶:0000100第五瓶
WE xiye
·
2023-06-09 23:13
趣味生活
c++
【
ACM算法
竞赛日常训练】DAY16【奇♂妙拆分】【区区区间间间】【小AA的数列】数学 | 位运算 | 前缀和
DAY16共3题:奇♂妙拆分(简单数学)区区区间间间(单调栈)小AA的数列(位运算dp)作者:Eriktse简介:19岁,211计算机在读,现役ACM银牌选手力争以通俗易懂的方式讲解算法!❤️欢迎关注我,一起交流C++/Python算法。(优质好文持续更新中……)阅读原文获得更好阅读体验:https://www.eriktse.com/algorithm/1119.html奇♂妙拆分(简单数学)根
·
2023-04-20 11:02
c++算法acm前缀和数学
ACM算法
训练
看完人家的博客,发现任重道远。。。一位高手对我的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(
°PJ想做前端攻城狮
·
2023-04-10 04:13
算法训练
ACM
算法训练
新手入门
ACM算法
作业
矩阵乘法#dynamic_progressingimportrandomA_list=[(7,9),(9,7),(7,7),(7,13),(13,15),(15,14),(14,5),(5,8),(8,13),(13,14)]#foriinrange(10):#A_list.append((A_list[-1][1],random.randint(5,15)))print(A_list)m=[[-
龙今天超越了自己
·
2023-04-06 06:36
动态规划
算法
python
开发语言
动态规划
ACM算法
笔记(三)背包问题_完全背包
首发csdn,链接:https://blog.csdn.net/Colicsin/article/details/115404392?spm=1001.2014.3001.5501问题描述:现在给你一个容量为V的背包,有N个物品,其中第i件物品的重量为wi,价值为vi,每件物品可以拿无数次,问在有限的容量内,最多可以拿到多少价值的物品。题目分析:完全背包问题和01背包好相似诶,不过貌似又不是那么一
Colicsin
·
2023-02-17 21:13
ACM算法
模板小汇总
(文章框架来自学长,内容来源于自我想象,不足之处dd)入门篇在入门篇我们会学习很多有用的知识,下面给出一份比较推荐的学习的路径,大家可以根据自己的情况去查缺补漏。1.枚举2.模拟3.递归4.前缀和和差分5.尺取法6.排序算法原理的理解7.二分,三分1>STL自带的二分函数在库#include手写二分递归形式intbinarySearch(std::vector&nums,intleft,intri
羽歌Yo
·
2023-01-07 07:41
模板们
算法
对算法学习的认识以及书籍推荐
_
ACM算法
日常-CSDN博客_算法怎么学第一次接触数据结构是在大二下学期的数据结构课程。
Morning sunshine
·
2022-11-22 14:23
算法+数据结构+设计模式
算法
ACM算法
模板 · 一些常用的算法模板-模板合集(打比赛专用)
0.头文件#define_CRT_SBCURE_NO_DEPRECATE#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;constintmaxn=110;constintINF=0x3f3f3f3f;1234567891
MissXy_
·
2022-08-14 07:15
算法和数据结构
算法
ACM部分学习路线
参考文章:
ACM算法
学习路线、清单ACM路线算法竞赛入门到进阶---完整学习路线(含知识点讲解)ACM学习计划一.基础
Twilight Sparkle.
·
2022-07-29 07:11
ACM学习
算法
acm竞赛
ACM算法
训练Day1【逆序对的数量】
题目说明数据范围样例代码①归并排序基本思想:②在归并的过程中,逆序对出现的三种情况:a.全部出现在左边的区间b.全部出现的右边的区间c.出现在左右两个区间黄色情况的求解方法:找左边区间比右边区间每一个数大的个数,相加就是答案在归并排序求出两个有序区间后,可以发现如下性质:当qi在某一阶段大于qj,易得qi及后所有数都大于qj,也就是构成两边区间的逆序对#includeusingnamespaces
世界尽头与你
·
2022-03-14 09:27
ACM
算法
排序算法
c++
ACM算法
笔记(五)贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。贪心算法的局部最优解:在当前子结构中,方案1是最优的解,通过方案1可以得到此子结构的最优化的解,此结构称为最优子结构。由部分最优推到全体最优。ps:贪心算法得到的解不一定是最优的解(这里
筱雨丶Colicsin
·
2022-02-28 07:09
ACM
算法
贪心算法
动态规划
ACM金牌学长,算法竞赛经验分享
于是小熊写一篇
ACM算法
竞赛入门和进阶指南,分享一下经验和学习方法。也许你可能不参加算法竞赛,但知道厉害的人如何学习、训练、一步步变强,也是可以借鉴和学习的。
算法码上来
·
2022-02-23 07:21
算法
java
编程语言
机器学习
人工智能
【数据结构和算法】如何学习数据结构与算法 ?过来人的建议(二)【方法篇】
我认为最实用、最直接、最快速的方法就是刷
ACM算法
题目,每个题目都会针对一个或多个算法进行考察,每道题目后台数据量足够
Linux猿
·
2021-07-03 11:31
动图讲解数据结构和算法
数据结构与算法
学习方法
建议
211毕业,面试快手被拒,称:比阿里难进一百倍
前言今日,有网友在职场论坛上发帖称:“快手的要求确实高,比阿里难进一百倍啊,三个面试官都是清华的,全是问的
acm算法
。”
该用户已秃头
·
2021-04-14 23:11
滁州学院2021年“新年杯”程序设计大赛暨
ACM算法
创新实验室选拔赛题解
A、滁大七十周年校庆—趣味竞答签到题,直接暴力模拟即可。#includeusingnamespacestd;intmain(){intt;//输入tcin>>t;//处理t组数据while(t--){//ans用来统计结果intans=0;intl,r;//输入l和rcin>>l>>r;//从l循环到r遍历区间内的所有数字for(inti=l;i#include#includeusingnames
轩冰
·
2021-01-06 14:54
ACM
acm竞赛
ACM算法
竞赛入门 概述
文章目录扩展:算法竞赛-培养杰出程序员的捷径算法竞赛入门1.竞赛语言和训练平台2.判题和基本的输入输出3.测试4.编码速度:唯快不破!5.模板6.题目分类7.代码规范扩展:算法竞赛-培养杰出程序员的捷径杰出的程序员往往具备:掌握多种编程语言代码量大算法知识丰富数学强做过很多项目有团队精神有创新意识会选择行业方向etc… 比尔·盖茨曾说过:“如果你想雇用一个工程师,看看他写的代码就够了。如果他没写
RichardLau_Cx
·
2020-12-12 12:28
ACM
算法分析与设计
c++
c语言
算法
acm竞赛
程序设计
ACM算法
-栈
经过深思熟虑,小周我想去打ACM,大学生国际程序设计比赛,可是奈何个人实力实在不行,算法这一块实在薄弱,我就想从零开始学习算法,如果有同学想一起学习的可以点下关注,让我们一起去学习。今天我学到的内容是数据结构--->栈原理:栈:又名堆栈,是一种运算受限制的线性表,限制是:仅仅允许从表的一段插入和删除运算。这一段称为栈顶,把另一端称为栈底。向一个栈插入新元素又称为进栈、入栈和压栈。它是把新元素放到栈
T--gsd
·
2020-09-16 15:35
ACM算法自学大全
ACM算法基础
栈
ACM结束之总结
开始怀着懵懂之心,觉得上大学学计算机要学到东西,经学姐介绍我选择了加入
ACM算法
社团参加竞赛。
王道之
·
2020-09-14 23:52
【
ACM算法
】-- 排序篇 - 自定义快速排序 - 1
如图:如果想要将,样例输出按照降序输出,即自定义排序规则,该怎么办呢?答:运用辅助函数,自定义排序规则声明:sort()函数只用小于号来定序代码如下:#includeusingnamespacestd;boolcmp(intx,inty){//自定义辅助函数,定义我们自己的排序规则returnx>y;}intmain(){intn;intbuf[100];while(scanf("%d",&n)!
猪猪传奇
·
2020-09-14 20:30
【
ACM算法
】-- 排序篇 - 默认快速排序
如图:还是上题,除了用冒泡排序外,还可以用快速排序当复杂度超过百万数量级,我们就不能用冒泡排序了,应该使用诸如快速排序,归并排序等排序算法,他们的复杂度为O(nlogn)代码如下:#includeusingnamespacestd;intmain(){intn;intbuf[10000];while(scanf("%d",&n)!=EOF){for(inti=0;i对于快速排序其排序所用符号,只是
猪猪传奇
·
2020-09-14 20:30
(转载)
ACM算法
模板 · 一些常用的算法模板-模板合集(打比赛专用)
https://blog.csdn.net/qq_32265245/article/details/53046750
XMU丶Weii
·
2020-09-13 13:42
ACM算法
模板--BY Focus
1.数学1.1素数1.1.1素数筛法(欧拉筛法,判断big)swap(big,small);inttemp;while(small!=0){//辗转相除法if(small>big)swap(big,small);temp=big%small;big=small;small=temp;}returnbig;}1.3快速幂1.3.1普通快速幂intpower(longlonga,intn){longl
Focus5679
·
2020-09-13 12:36
算法讲解及小技巧
ACM算法
——线性筛
应用:判断是否为素数第一个想法:普通优化,对数字加根号遍历。不够优秀第二个想法:如果我们知道一个数是素数,那么我们可以将这个素数的倍数筛去。我们从2开始,每次循环到一个数,先判断它是否被筛过,如果没有,那么它肯定是素数,就用它去筛它的倍数,否则就跳过。上述的筛法称为:埃氏筛法复杂度大约为nln(n)这个算法时间主要浪费在一个数字会被重复筛去。比如6=2*3。它被2筛了一次,被3又筛了一次。为了解决
SeddonShen
·
2020-09-13 01:06
算法学习
算法
ACM算法
——组合数学
卡特兰数问题:n对括号有多少种合法的匹配方式?(卡特兰数的常见应用之一)结论:对于n对括号,合法的排列共有C(n,2n)-C(n+1,2n)基本思路:考虑n对括号,有n个(和n个),对于任意一个)其前面必定有一个(跟他对应,如果没有则是非法序列。也就是说,对于),其前面的(的数量必须大于等于)的数量。假设(=1,)=-1。合法的序列是1-11-11-1,不合法的序列是1-1-111-1。n对括号的
SeddonShen
·
2020-09-13 01:35
算法学习
算法
楼兰图腾—树形dp
整理的算法模板:
ACM算法
模板总结(分类详细版)在完成了分配任务之后,西部314来到了楼兰古城的西部。
bool_memset
·
2020-09-12 08:57
基础算法——DP动态规划
2019年第十届蓝桥杯【C++省赛B组】【第四题: 数的分解】——附解题思路及代码
蓝桥杯历届题目及解析汇总(附思路及代码)【点击此进入】蓝桥杯,
ACM算法
学习【文档】【视频】大放送【点击此进入】第四题标题:数的分解(本题总分:10分)【问题描述】把2019分解成3个各不相同的正整数之和
广海_小疯疯丶
·
2020-09-12 04:34
【蓝桥杯题解】
2019年第十届蓝桥杯【C++省赛B组】【第七题:完全二叉树的权值】——附解题思路及代码
蓝桥杯历届题目及解析汇总(附思路及代码)【点击此进入】蓝桥杯,
ACM算法
学习【文档】【视频】大放送【点击此进入】第七题标题:完全二叉树的权值(时间限制:1.0s内存限制:256.0MB本题总分:20分)
广海_小疯疯丶
·
2020-09-12 04:48
【蓝桥杯题解】
2019
第十届
蓝桥杯
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他