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
洛谷模板题
Acwing 5396题
这里主要是运用了前缀和和差分的知识,对于差分数列和前缀和有一定的了解,这里就是个
模板题
而已如果忘记或者不知道的话,建议可以从这个网址当中看相关的知识点,讲的很清楚前缀和-知乎(zhihu.com)差分-
是小Y啦
·
2024-01-23 22:59
算法
洛谷
2367题
这个题是一个简单的前缀和题目,单纯的考前缀和这个知识点。不过这个题好像跟上一个做AcWing棋盘那个题有一些不一样,那个题是直接在原始数组上进行对差分数组的操作,这是因为上一个题原始全是0,就算是差分数组也是0,他们是相等的,所以在这个题一开始作者就直接在原数组上操作了,这是不对的。需要先根据原数组求出来差分数组,然后再进行操作,最后再化为前缀和,这里的差分目的主要就是为了减少时间耗费。#incl
是小Y啦
·
2024-01-23 22:59
算法
洛谷
P1196[NOI2002]银河英雄传说-并查集扩展
银河英雄传说题意:在并查集的基础上,还要求出同一集合的两个点的距离这道题用并查集自己是知道的,但是竟然可以这么骚的操作。下面转自大佬的查详细题解初见这道题,首先想到的方法当然是直接模拟,模拟每一次指令。当然这种方法对于小数据行得通,但对于此题的500,000个指令,肯定超时。因此我们就要想其它方法。先来分析一下这些指令的特点,很容易发现对于每个M指令,只可能一次移动整个队列,并且是把两个队列首尾相
weixin_30439031
·
2024-01-23 21:03
数据结构与算法
牛客-道路建设——最小生成树
模板题
文章目录题目题目详解解题代码题目题目链接题目详解就一非常简单的最小生成树问题而已,但是就是耗了我很长时间也不知错哪了(现在也不清楚)。。我用的Kruskal算法实现最小生成树,而我是用的最小堆实现的,然后最小堆实现就硬是给我卡最后一个用例,我也不知道为什么?然后改普通数组排序就直接过了。。。以下为最小堆实现的main函数,然后就硬是卡最后一个用例,把最小堆换数组存值后就过了。。intmain(){
C+G
·
2024-01-23 21:02
并查集
最小生成树
算法
图论
洛谷
P5705 【深基2.例7】数字反转
二、分析题目链接在此【深基2.例7】数字反转-
洛谷
1.第一种做法importjava.util.ArrayList;importjava.util.Collections;importjava.util.LinkedList
HeiOs.
·
2024-01-23 20:06
算法题
java
【蓝桥杯冲冲冲】贪心算法学习 challenge yourself ~
蓝桥杯备赛|
洛谷
做题打卡day14文章目录蓝桥杯备赛|
洛谷
做题打卡day14【深基12.例1】部分背包问题题目描述输入格式输出格式样例#1样例输入#1样例输出#1题解代码我的一些话【深基12.例1】部分背包问题题目描述阿里巴巴走进了装满宝藏的藏宝洞
松叶子吖
·
2024-01-23 15:46
蓝桥杯备赛
新手帖
蓝桥杯
贪心算法
学习
【蓝桥杯冲冲冲】排队接水--贪心算法巩固 (≧∇≦)
蓝桥杯备赛|
洛谷
做题打卡day15文章目录蓝桥杯备赛|
洛谷
做题打卡day15排队接水题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示思路题解代码我的一些话排队接水题目描述有nnn个人在一个水龙头前排队接水
松叶子吖
·
2024-01-23 15:46
蓝桥杯备赛
蓝桥杯
贪心算法
职场和发展
【备战蓝桥杯】图论重点 敲黑板啦!
蓝桥杯备赛|
洛谷
做题打卡day11文章目录蓝桥杯备赛|
洛谷
做题打卡day11杂务题目描述输入格式输出格式样例#1样例输入#1样例输出#1题解代码我的一些话杂务题目描述John的农场在给奶牛挤奶前有很多杂务要完成
松叶子吖
·
2024-01-23 15:16
新手帖
蓝桥杯备赛
蓝桥杯
图论
职场和发展
洛谷
P1319 压缩技术(C语言)
这样一道入门题目,本来可以用for循环直接操作,但作者异想天开(xiandedanteng)地把所有数据登记在一个数组里面,然后再统一按格式输出。也就是定义一个数组Map,大小为n成n,然后按照输入数据,把Map中每一个点改为0或者是1,然后根据题目要求的格式输出。比较简单,就直接贴代码了。#includeintmain(){intn,a,b,i,arr[50000],k=0,j=0;scanf(
林洛尘
·
2024-01-23 15:08
c语言
算法
数据结构
第九周学习报告(1.15-1.21)
(dp的一个
模板题
)883,884(高斯消元的
模板题
)885,886,887,888,889(组合数的
模板题
)890(容斥原理
模板题
)891,892,893,894(博弈论
模板题
)894,338,29
三冬四夏会不会有点漫长
·
2024-01-23 09:14
#
算法训练周报
学习
单源最短路径-java解法
单源最短路径此版本为Java题解版这是一道
模板题
,对于单源最短路径的题,我们首选Dijikstra算法。首先我们对算法思路进行一个复习。
Lucky_Jiang
·
2024-01-23 09:49
洛谷题解
算法笔记
java
算法
数据结构
洛谷
P3375 【模板】KMP
题目描述给出两个字符串s1和s2,若s1的区间[l,r]子串与s2完全相同,则称s2在s1中出现了,其出现位置为l。现在请你求出s2在s1中所有出现的位置。定义一个字符串s的border为s的一个非s本身的子串t,满足t既是s的前缀,又是s的后缀。对于s2,你还需要求出对于其每个前缀s′的最长bordert′的长度。输入格式第一行为一个字符串,即为s1。第二行为一个字符串,即为s2。输出格式首先输
3分人生
·
2024-01-22 23:34
题组
算法
洛谷
P1019 单词接龙
题目背景注意:本题为上古NOIP原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。NOIP2000提高组T3题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonis
3分人生
·
2024-01-22 23:03
算法
洛谷
P2058 海港
题目背景NOIP2016普及组T3题目描述小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间ti(单位:秒),船上的乘客数ki,以及每名乘客的国籍xi1,xi2,…,xik。小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止
3分人生
·
2024-01-22 23:03
算法
洛谷
P1126 机器人搬重物
题目描述机器人移动学会(RMI)现在正尝试用机器人搬运物品。机器人的形状是一个直径1.6米的球。在试验阶段,机器人被用于在一个储藏室中搬运货物。储藏室是一个N×M的网格,有些格子为不可移动的障碍。机器人的中心总是在格点上,当然,机器人必须在最短的时间内把物品搬运到指定的地方。机器人接受的指令有:向前移动1步(Creep);向前移动2步(Walk);向前移动3步(Run);向左转(Left);向右转
3分人生
·
2024-01-22 23:02
题组
算法
【基础算法练习】归并排序模板
文章目录归并
模板题
归并排序的思想静态逻辑图:动态逻辑图:C++版本的归并Golang版本的归并归并
模板题
第一道题,所有排序都适合在这里练习:912.排序数组第二道题,使用归并排序思想的题目:148.排序链表归并排序的思想归并排序的核心思想也是分治
戊子仲秋
·
2024-01-22 21:22
基础算法练习
算法
二分查找刷题5
题目来源:银行贷款-
洛谷
家人们,谁懂啊。有没有人和我一样不会算利率的。这道题用二分查找的思想模拟还款过程,就可以计算出来了。需要注意的是这道题在计算还款过程中,利率通常是按期(本例中是按月)累计的。
Sking426
·
2024-01-22 14:38
算法
数据结构
c++
c语言
二分答案刷题4
题目来源:数列分段SectionII-
洛谷
这道题又是一道求最值的问题,求每段和的最大值最小,可以用二分答案求解。解题思路:二分答案求解的过程中,最重要的是判断条件,判断条件想好就迎刃而解了。
Sking426
·
2024-01-22 14:08
算法
二分答案刷题3
题目来源:[NOIP2015提高组]跳石头-
洛谷
解题思路:突然觉得做专项练习挺好的,这个题目一看就是用二分答案求解,时间
Sking426
·
2024-01-22 14:07
算法
二分查找刷题4
题目来源:烦恼的高考志愿-
洛谷
这道题可以用二分查找解决。这题的目的是找到与学生的估分差距最小的学校并计算其总的满意度值,用二分查找可以降低一定查找速度。
Sking426
·
2024-01-22 14:37
算法
二分答案刷题2
题目来源:木材加工-
洛谷
这道题和之前发表过的一篇文章的解题思路是一样的。
Sking426
·
2024-01-22 14:37
算法
数据结构
c++
c语言
visual
studio
code
二分答案刷题5
题目来源:kotori的设备-
洛谷
这道题可以用二分答案求解。解题步骤:二分查找过程:计算中值mid=(low+high)/2,这代表当前假设的设备能够同时运行的时间。
Sking426
·
2024-01-22 14:33
算法
数据结构
c++
c语言
洛谷
OJ-字符串大小写转化
遇到有关不区分大小写的题目时,需要对字符串进行统一的大小写转化。有两种方法。方法一:通过遍历字符串,然后用tolower(charc)和toupper(charc)这两个函数,完成转化。strings("HelloWorld!!!");for(auto&c:s){c=toupper(c);}cout<
CPPZWW
·
2024-01-22 11:07
P1001 A+B Problem(整活-dijstra堆优化)
这不仅对
洛谷
其他题目有效,而且也是NOIP/CSP/NOI比赛的要求!好吧,同志们,我们就从这一题开始,向着大牛的路进发。任何一个伟大的思想,都有一个微不足道的开始。输入格式两个以空格分开的整数。
cCcOcCc_Chen
·
2024-01-22 11:07
算法
数据结构
c++
图搜索算法
矩阵重叠问题判断
创作背景看到一道题目有感而发想写一篇题解,涉及的是一种逆向思维桌面窗体重叠-
洛谷
https://www.luogu.com.cn/problem/U399827题目来源于《信息学奥赛课课通》大致就是给一个长方形的左上顶点坐标
陌迹
·
2024-01-22 08:42
信息学竞赛C++学习
算法
P1024 [NOIP2001 提高组] 一元三次方程求解
网址如下:P1024[NOIP2001提高组]一元三次方程求解-
洛谷
|计算机科学教育新生态(luogu.com.cn)做的还是比较顺利的,打草稿就是好代码如下:#include#includevoiddg
Fool256353
·
2024-01-22 06:03
算法
P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
网址如下:P1029[NOIP2001普及组]最大公约数和最小公倍数问题-
洛谷
|计算机科学教育新生态(luogu.com.cn)水了道题学了求最小公倍数和最大公因数的新方法我对辗转相除法这个东西有所耳闻
Fool256353
·
2024-01-22 06:03
算法
P1026 [NOIP2001 提高组] 统计单词个数
网址如下:P1026[NOIP2001提高组]统计单词个数-
洛谷
|计算机科学教育新生态(luogu.com.cn)怠惰了半个月没写代码呆在学校的时候想着回家肯定会收到管制,然后没怎么写15号晚上到的家16
Fool256353
·
2024-01-22 06:03
c语言
算法
P1005 [NOIP2007 提高组] 矩阵取数游戏
网址:P1005[NOIP2007提高组]矩阵取数游戏-
洛谷
|计算机科学教育新生态(luogu.com.cn)动态规划和高精度的组合,使我的滨州旋转最后只得了80,两个测试点超时了看题解有人是用了int128
Fool256353
·
2024-01-22 06:33
算法
动态规划
c语言
刚学习的最长不递增子序列的新求法
P1020[NOIP1999提高组]导弹拦截-
洛谷
|计算机科学教育新生态(luogu.com.cn)在做这题的时候学到的我看说是复杂度在O(nlogn)的算法才能通过这题普通的办法就不行了(之前写过)然后我去看题解
Fool256353
·
2024-01-22 06:30
学习
【万题详解】
洛谷
P1252 马拉松接力赛
前言因为博主已经考完期末考试了,所以一定会多多更新。P1252马拉松接力赛某城市冬季举办环城25km马拉松接力赛,每个代表队有5人参加比赛,比赛要求每个的每名参赛选手只能跑一次,一次至少跑1km、最多只能跑10km,而且每个选手所跑的公里数必须为整数,即接力的地方在整公里处。刘老师作为学校代表队的教练,精心选择了5名长跑能手,进行了训练和测试,得到了这55名选手尽力连续跑1km、2km、…、10k
喷火龙廖
·
2024-01-22 01:47
算法
【万题详解】
洛谷
P1359 租用游艇
P1359租用游艇题目链接点这里!!!题目描述长江游艇俱乐部在长江上设置了n个游艇出租站1,2,⋯,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j)(1≤iusingnamespacestd;intf[201],n,i,j,x;intmain(){scanf("%d",&n);for(i=1;if[i]+x)//学习f[j
喷火龙廖
·
2024-01-22 01:17
算法
动态规划
c++
图论
dp
归并排序(
模板题
详解)
[题目概述]给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼109范围内),表示整个数列。输出格式输出共一行,包含n个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤1000001≤n≤100000输入样例:531245输出样例:12345分析题目本题为模
techpupil
·
2024-01-22 01:35
算法
数据结构
排序算法
Twisted Circuit
洛谷
绿题题解
TwistedCircuit题面翻译读入四个整数000或者111,作为如图所示的电路图的输入。请输出按照电路图运算后的结果。感谢@PC_DOS提供的翻译题目描述输入格式Theinputconsistsoffourlines,eachlinecontainingasingledigit0or1.输出格式Outputasingledigit,0or1.样例#1样例输入#10110样例输出#10#inc
一只贴代码君(yaosicheng)
·
2024-01-21 14:04
C++
简介
灌水
算法
洛谷
P2911 [USACO08OCT] Bovine Bones G(C语言)
看到这么小的数据范围,那当然是暴力枚举啦!况且这还是入门题,怎么可能如此难为我这种萌新呢。我的思路是用数组下标来记录次数ch[i+j+q]++;这就是用三个数的和当做下标然后后面就是遍利数组找出要的值#includeintmain(){inta,b,c,d;intch[100]={0};intmax=0,number=0;scanf("%d%d%d",&a,&b,&c);for(inti=1;i<
林洛尘
·
2024-01-21 07:38
c语言
算法
数据结构
洛谷
P5731 【深基5.习6】蛇形方阵(C语言)
思路感觉还是比较好想的。从1到n依次算。先往右,走到头往下,再走到头往左,以此类推。#includeintmain(){intn,i,j,k=1,t=0;scanf("%d",&n);inta[100][100];if(n%2==0)t=n/2;elset=n/2+1;for(i=0;i=i;j--)//再走到头往左a[n-i-1][j]=k++;for(j=n-i-2;j>i;j--)//往上a
林洛尘
·
2024-01-21 07:38
算法
数据结构
c语言
洛谷
P5732 【深基5.习7】杨辉三角(C语言)
入门递推题,就算你不是OIer也该知道的杨辉三角同时这也是组合数的公式,很重要,因为常规组合数公式是阶乘运算会爆,而这个就不怎么会了赋arr[i][j]初值1,接下来就可以递推了#includeintmain(){inti,n,j;intarr[21][21];for(i=0;i<21;i++){for(j=0;j<21;j++)//赋初值arr[i][j]=1;}scanf("%d",&n);f
林洛尘
·
2024-01-21 07:38
c语言
算法
数据结构
洛谷
P2615 [NOIP2015 提高组] 神奇的幻方(C语言)
这普及题太水了,你按照他给的条件来列判断语句。按题目一步一步模拟首先将1写在第一行的中间。若K-1在第一行但不在最后一列,则将K填在最后一行,K-1所在列的右一列;若K-1在最后一列但不在第一行,则将K填在第一列,K-1所在行的上一行;若K-1在第一行最后一列,则将K填在K-1的正下方;若K-1既不在第一行,也最后一列,如果K−1的右上方还未填数,则将K填在K−1的右上方,否则将L填在K-1的正下
林洛尘
·
2024-01-21 07:37
c语言
算法
数据结构
洛谷
P5707 【深基2.例12】上学迟到(C语言)
思路:先计算的走路时间加上垃圾分类时间inta=s/v+10;然后这道题的第1个坑来了,如果路程和时间不能整除的话,需要加一分钟,因为多出的那几秒也算,所以这边要加一个判定。if(s%v!=0)a++;接下来就是计算小时和分钟h=a/60;m=a%60;然后这道题的第2个坑来了,题目说提前的时间不会超过一天而且要用24小时的形式输出,因为上午8点必须到达,所以我们这边需要添加两个判定,一判定h有没
林洛尘
·
2024-01-21 07:07
c语言
开发语言
洛谷
P2433 【深基1-2】小学数学 N 合一(C语言)
#【深基1-2】小学数学N合一##题目描述###问题1请输出`IloveLuogu!`###问题2这里有$10$个苹果,小A拿走了$2$个,Uim拿走了$4$个,八尾勇拿走剩下的所有的苹果。我们想知道:1.小A和Uim两个人一共拿走多少苹果?2.八尾勇能拿走多少苹果?现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。###问题3现在有$14$个苹果。要均分给$4$名同学,分不掉的苹果放
林洛尘
·
2024-01-21 07:07
算法
c语言
洛谷
P5717 【深基3.习8】三角形分类(C语言)
主要思路:我先用三个If语句,从大到小排列abc的值inttemp;if(a>b){temp=a;a=b;b=temp;}if(a>c){temp=a;a=c;c=temp;}if(b>c){temp=b;b=c;c=temp;}然后按照题目给出的要求来建立运算式,这里要用到一个库函数pow,它存在于math库中if(a+b>c&&a+c>b&&b+c>a){if(pow(a,2)+pow(b,
林洛尘
·
2024-01-21 07:07
c语言
算法
洛谷
P1217 [USACO1.5] 回文质数 Prime Palindromes(C语言)
法一看到这么大的范围,我的第一反应是通过线性筛质数表来解题.然后在质数表找到回文数.结果交上去之后最后一组tle了,通过观察输出结果,我发现100000000以内的最大的回文质数是9989899,于是乎我质数表的上限加了9989899,再次提交就ac啦~.#include#defineN100000000charnotpalpri[N];longlongpalpri[N],prime[N],tot
林洛尘
·
2024-01-21 07:07
算法
c语言
洛谷
P1161 开灯
这倒也是水题,我们可以建立一个数组,数组的下标就是编号,我们要注意的是浮点数乘法的结果要转化成整数,才能当做下标,因为题目给的是整数编号。#includeintmain(){inta[1000000]={0},n,t,i;doubleb,j;scanf("%d",&n);for(i=0;i
林洛尘
·
2024-01-21 07:34
算法
数据结构
c语言
【基础算法练习】快速排序模板
文章目录快排
模板题
我使用的快排模板C++版本的快排Golang版本的快排为什么学习快排快排
模板题
第一道题,所有排序都适合在这里练习:912.排序数组第二道题,适合快排和堆排:215.数组中的第K个最大元素我使用的快排模板我使用的是双指针版本的快排
戊子仲秋
·
2024-01-21 04:55
基础算法练习
算法
洛谷
P1541 [NOIP2010 提高组] 乌龟棋【线性dp+挖掘性质优化】
原题链接:https://www.luogu.com.cn/problem/P1541题目背景NOIP2010提高组T2题目描述小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型的卡
lianxuhanshu_
·
2024-01-21 01:34
动态规划
算法
动态规划
洛谷
P1613 跑路【最短路+倍增】
原题链接:https://www.luogu.com.cn/problem/P1613题目描述小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零。可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资,小A买了一个空间跑路器,每秒钟可以跑2^k千米(k是任意自然数)。当然,这个机器是用longint存的,所以总跑路长度不能超过maxlongint千米。小A
lianxuhanshu_
·
2024-01-21 01:34
图论
算法
洛谷
P1537 弹珠【多重背包+二进制优化】
原题链接:https://www.luogu.com.cn/problem/P1537题目描述玛莎和比尔各自有自己的弹珠收藏。他们想重新分配收藏品,使两人能平等拥有弹珠。如果所有的弹珠的价值相同,那么他们就可以平分。但不幸的是,有一些弹珠更大,或者更美丽,所以,玛莎和比尔给每个弹珠一个1到6的价值。现在他们想平分这些弹珠,使每个人得到的总价值相同。不幸的是,他们发现,他们可能无法以这种方式分弹珠(
lianxuhanshu_
·
2024-01-21 01:33
动态规划
算法
动态规划
洛谷
P1622 释放囚犯【区间dp】
原题链接:https://www.luogu.com.cn/problem/P1622题目描述Caima王国中有一个奇怪的监狱,这个监狱一共有P个牢房,这些牢房一字排开,第i个紧挨着第i+1个(最后一个除外)。现在正好牢房是满的。上级下发了一个释放名单,要求每天释放名单上的一个人。这可把看守们吓得不轻,因为看守们知道,现在牢房中的P个人,可以相互之间传话。如果某个人离开了,那么原来和这个人能说上话
lianxuhanshu_
·
2024-01-21 01:32
动态规划
算法
动态规划
统计方形(数据加强版)#
洛谷
题目背景1997年普及组第一题题目描述有一个n×mn\timesmn×m方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。输入格式一行,两个正整数n,mn,mn,m(n≤5000,m≤5000n\leq5000,m\leq5000n≤5000,m≤5000)。输出格式一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。样例#1样例输入#123样例输出#1810n,m=m
直接AC好吗
·
2024-01-20 17:25
算法
python
数据结构
烤鸡#
洛谷
题目背景猪猪Hanke得到了一只鸡。题目描述猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有101010种配料(芥末、孜然等),每种配料可以放111到333克,任意烤鸡的美味程度为所有配料质量之和。现在,Hanke想要知道,如果给你一个美味程度nnn,请输出这101010种配料的所有搭配方案。输入格式一个正整数nnn,表示美味程度。输出格式第一行
直接AC好吗
·
2024-01-20 17:25
python
算法
开发语言
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他