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
dropping
uva 10934
Dropping
water balloons(dp)
题意:给出k个水球,n层楼,现在想测试出水球最低会在那层楼扔下爆炸,问最少需要测试多少次,注意要求的情况是每层楼都可能爆炸。解题思路:一眼看上去会觉得是二分,如果求数够的话,确实能够在log2(n)的次数之内求出测试出来,但是这个问题我们要考虑的是每个位置都有可能爆炸,所以不仅球不够,目标位置没有确定也导致我们不可能考虑二分。想一想如果去搜索的话,我们肯定会搜索还剩下i个球,已经测试了j次的状态。
johsnows
·
2020-08-17 23:57
acm
动态规划
need
review
uva
acm
uva
Dropping
water balloons UVA - 10934 (奇怪的dp,思维题)
It’sfroshweek,andthisyearyourfriendshavedecidedthattheywouldinitiatethenewcomputersciencestudentsbydroppingwaterballoonsonthem.They’vefilledupalargecrateofidenticalwaterballoons,readyfortheevent.Butas
elbadaernu
·
2020-08-17 22:39
思维题
dp
uva10934
Dropping
water balloons
#include#includeusingnamespacestd;constintmaxk=100;constintmaxa=63;unsignedlonglongd[maxk+1][maxa+1];intmain(){memset(d,0,sizeof(d));for(inti=1;i>k>>n&&k){intans=-1;for(inti=1;i=n){ans=i;break;}if(ans
dengdouweng1282
·
2020-08-17 22:16
UVA 10934
Dropping
water balloons
题目链接:http://acm.hust.edu.cn/vjudge/problem/27377题意:你现在有k个气球,你可以借助n层楼去测试气球的硬度,如果你从x层扔下气球,气球炸了,你会少一个气球,并且知道气球的硬度小于x;没炸的话你会知道气球的硬度至少为x。给出k和n,问至少测试几次才可以得到气球的硬度。思路:这题书上给了一个很好的思路,dp[i][j]表示测试j次,有i个气球时允许的最大楼
DS-K
·
2020-08-17 21:47
UVA
【Uva 10934】
Dropping
water balloons
【Link】:【Description】等价题意:某人在1..n内选一个数x;然后让你去猜;你可以问他是不是在哪个范围里;每次会告诉你YES或者NO;问你在最坏的情况下猜出答案需要猜多少次;且猜的数字大于x的次数不能超过k次.【Solution】动态规划.设f[i][j]表示前i个水球,做了j次试验;能得到的最大高度;这里的f[i][j];指的是,如果问的数字是1..f[i][j],的话,用i个水
adgnfega11455
·
2020-08-17 21:21
【紫薯dp练习】从读题到放弃-uva 10934
Dropping
water balloons
首先,题目的意思是让你去扔气球,砸小孩,非常玄幻。【要点】为什么2的时候是14呢?关键在于我们虚晃一枪,先扔了50,如果没爆,那赚了,只需要测50就可以了(转移到了50的状态,下面的50都没用了,是不是非常眼熟?)即使爆了,我们还可以继续扔,继续诓?但是,50爆了,我们只能从1开始1234。。保不好要扔49次,因此我们要找一个最好的地方去扔,避免浪费,还有效。啊,想到是dp,不要正面去想啊,找一个
StrongerIrene
·
2020-08-17 20:46
#
动态规划
#
日常刷题
UVa 10934
Dropping
water balloons
UVa10934Droppingwaterballoons题目链接:UVa10934DroppingwaterballoonsProblemDescriptionIt’sfroshweek,andthisyearyourfriendshavedecidedthattheywouldinitiatethenewcomputersciencestudentsbydroppingwaterballoon
LOSER_LIGHT
·
2020-08-17 20:20
UVa
Uva10934 详解 装满水的气球(
Dropping
water balloons)
因为给定气球数后,不同的尝试次数,值是固定的,所以先求出所有解节省时间。dp(i,j)=dp(i-1,j-1)+1+dp(i,j-1)可以理解为:假设当前在k层,1.如果该层气球爆炸,则这一层需要消耗一个气球,和一次尝试,所以前面k-1层消耗了i-1个气球和j-1次尝试。2.如果该层气球不爆炸,则这一层不需要消耗气球,但是需要消耗一次尝试,所以j需要减1。这类问题可以归结为猜数问题模型1:给你一个
zytjyh
·
2020-08-17 20:49
算法入门竞赛经典
UVA 10934
Dropping
water balloons (动规)
DescriptionIt’sfroshweek,andthisyearyourfriendshavedecidedthattheywouldinitiatethenewcomputersciencestudentsbydroppingwaterballoonsonthem.They’vefilledupalargecrateofidenticalwaterballoons,readyforthe
ffutop
·
2020-08-17 19:47
dp
UVA - 10934
Dropping
water balloons(装满水的气球)(dp)
题意:有k个气球,n层楼,求出至少需要多少次实验能确定气球的硬度。气球不会被实验所“磨损”。分析:1、dp[i][j]表示第i个气球,测试j次所能确定的最高楼层。2、假设第i-1个气球测试j-1次所确定的最高楼层是a,若第i个气球在测试第一次的时候摔破了,那摔破所在的楼层b#include#include#include#include#include#include#include#includ
Cherrychan2014
·
2020-08-17 19:56
python
UVa #10934
Dropping
water balloons (例题9-20)
最初的想法应该是:d(i,j)表示用i个球在高度为j的楼里做实验,需要的最少实验次数。可是层数太大,无法作为状态。进行一下问题的转换:设d(i,j)表示用i个球做j次实验最高可以测试多少层楼。最后只需选取d(k,j)>=n的最小的j即可状态的转移很有意思:假设我们现在对d(i,j)做决策,如果气球爆了,则实验可以测定的层数等于d(i-1,j-1)+1。如果气球没爆,我们可以继续向上面的楼层搜索。向
专攻挖掘机炒鸡蛋算法
·
2020-08-17 19:08
第九章
-
动态规划初步
算法竞赛入门经典
ACM
UVa
UVA10934
Dropping
water balloons(经典题 dp状态比较难想)
题意:k个水球,现在在一个n层建筑物上,水球可能在某一层层以上扔下去会破掉,现在求一个最少的次数使得用这k个水球能确定出哪一层。分析:假设你有无数个水球的情况下,那么最少的次数肯定就是用二分的方法:首先在正中间摔下去,如果破的话,说明目标位置在下半部分,不破的话说明是在上半部分。上后继续在对应的部分再二分下去……需要logn次。但是这题的水球数量有限,例如,只有一个水球的情况下,你直接在正中间楼层
Self-Discipline
·
2020-08-17 19:51
dp
UVA - 10934
Dropping
water balloons(思维+dp)
传送门很神奇的一道题,看起来是求最小的实验次数,实际上程序主体并没有用到minminmin,而是递推解决问题,先看下LRJ的思路:设d[i][j]d[i][j]d[i][j]用i个气球实验j次所能测试楼的最高层数,第一次决策,设测试楼层为kkk:如果气球破了,说明前k−1k-1k−1层必须能用i−1i-1i−1个球实验j−1j-1j−1次测出来,也就是说k=d[i−1][j−1]+1k=d[i-1
Happig丶
·
2020-08-17 18:52
uva 10934——
Dropping
water balloons
题意:给定K个气球,然后n层楼的高度,求确定气球的硬度(站在多高能摔破)思路:递推。dp(i,j)表示最优,那么即dp(i-1,j-1)+1最优,如果K层没有破,则把K+1看成1层继续。得到转移方程dp(i,j)=k+dp(i,j-1)=dp(i-1,j-1)+dp(i,j-1);code:#include#include#include#include#include#include#inclu
WildKid1024
·
2020-08-17 18:38
UVa 10934
Dropping
water balloons:dp(递推)
题目链接:https://vjudge.net/problem/27377/origin题意:有一栋n层高的楼,并给你k个水球。在一定高度及以上将水球扔下,水球会摔破;在这个高度以下扔,水球不会摔破,并且可以捡起来再用。现在你要通过不断地试扔水球,找出在这栋楼上的第几层扔水球,恰好能让水球摔破。问你在最坏情况下,最少扔几次可以保证找出这个层数(若大于63次则输出‘Morethan63trialsn
a1392136
·
2020-08-17 18:23
ACM DP
Dropping
water balloons
滴,集训第十七天打卡。感觉这阵子都是dp啊...uva10934Droppingwaterballoons题目大意:你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉。由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层。(在最糟情况下,水球在顶楼也不会破)你可以在某一层楼丢下水球来测试,如果水球没破,你可以再捡起来继续用。思路:好不容易
TheWise_lzy
·
2020-08-17 18:45
2017暑假集训
——其他——
DP
100道动态规划——17 UVA 10934
Dropping
water balloons 猜数问题
老实说我感觉这个更加像递推。。而不是动态规划。一开始对答案是很疑惑的,后来去问了dalao,dalao告诉我这是猜数问题,于是我就找关于猜数问题的资料看,发现他们本质是确实是同一个问题。这里把链接放出来:http://wenku.baidu.com/link?url=fpTY4pNQy0seexyQQbA2dnMUj-_DewqBq2ndP5o8oqVYsRkFf3krlBNon2rlRaAU2U
Good_night_Sion_
·
2020-08-17 18:50
我说过的
CCPC拿到铜了
就做100道动态规划
我说过的
CCPC拿到铜了
就做100道动态规划
100道动态规划
【自主训练B:dp递推】B :
Dropping
water balloons
自主训练B:B题:Droppingwaterballoons【难度】4/104/104/10多理解一下吧【题意】楼高NNN你有KKK个相同的水球。水球有一个相同的抗击打系数,表现为:在某一特定楼层以下扔球都不会破,高于其特定楼层一定会破。当然,球破掉了就不能用了。问你:最多试几次,就可以知道水球的抗击打系数?如果尝试次数超过63次,输出“Morethan63trialsneeded.”【数据范围】
溢流眼泪
·
2020-08-17 18:00
算法
动态规划
uva 10934
Dropping
water balloons(dp | 难想)
本文出自http://blog.csdn.net/shuangde800---------------------------------------------------------------------------------题目链接:uva-10934题意你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往下丢可以让水球破掉。由于你很懒,所以你想要丢最少次水
shuangde800
·
2020-08-14 07:34
动态规划
ACM-ICPC征途
Poj-2976
Dropping
tests (01分数规划)
题目:准确率:n场考试中分别答对a_i题,总题数分别为b_i,允许去掉k场考试,求能达到的最高准确率。POJ2976Droppingtests题解《挑战程序设计竞赛》[Algorithm]01分数规划——Update:2012年7月27日//条件C(x):=可以选择使得单位重量的价值不小于x#include#include#include#includeusingnamespacestd;cons
zzti_xiaowei
·
2020-08-14 00:25
Acm--模板题
Acm--二分
关于浏览器的重绘和重排问题
写这篇博客之前我是对重绘和重排没有什么概念的,然而今天在学习vuejs高仿饿了吗的项目时,碰到了这样一个问题
dropping
(el,done){/*eslint-disableno-unused-vars
wcq_work1995
·
2020-08-13 20:52
扔鸡蛋问题详解(Egg
Dropping
Puzzle)
经典的动态规划问题,题设是这样的:如果你有2颗鸡蛋,和一栋36层高的楼,现在你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该如何用最少的测试次数对于任何答案楼层都能够使问题得到解决。如果你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你可以继续用如果这个鸡蛋摔碎了,则你可以用来测试的鸡蛋减少一个所有鸡蛋的质量相同(都会在同一楼层以上摔碎)对于一个鸡蛋,如果其在楼层i扔下的时候摔碎了,对于任何不小于i的楼层,
joylnwang
·
2020-08-13 15:14
[01分数规划]POJ2976
Dropping
tests]经典二分题-01分数规划
题目链接题目描述给定N个元素,每个元素含有A[i],B[i],取其中N-K个元素得到:,最大化这个值.分析使用二分答案:二分一个值V,使得,化简:那么可以在二分的check函数中选择前N-K个最大的(),检查是否大于等于0.注意精度的处理。#include#include#includeusingnamespacestd;constintMAXN=1001;intN,K;doubleA[MAXN]
_Vmpy
·
2020-08-10 19:51
算法
C++
二分
【异常】SparkStreaming长时间运行出现:
Dropping
SparkListenerEvent because no remaining room in event queue
问题描述在SparkStreaming任务提交后,经过长时间的运行会在SparkUI的Jobs界面出现Job的执行时间出现几个小时的情况,点进去发现Stage已经处于unkown状态,如下图:查看日志后发现下面ERROR异常:2018-01-0616:42:03[dag-scheduler-event-loop:600497]-[ERROR]DroppingSparkListenerEventbe
wangweislk
·
2020-08-09 13:54
Spark
uboot中ramdisk启动linux的两种方法
转载地址:https://blog.csdn.net/
dropping
_1979/article/details/20628109首先要确保内核支持ramdisk启动:Theconfigurationofthekernelisasfollow
kunkliu
·
2020-08-05 13:26
uboot
Android P (API 28) 弹窗按键无响应
Dropping
event due to no window focus
AndroidP(API28)弹窗按键无响应Droppingeventduetonowindowfocus发现在Android28(P)版本上出现弹窗之后,按键无反应,只能重启,而其他版本的手机却没有问题通过抓日志,看到在按键的时候,日志里不断出现下面两条日志:W/ViewRootImpl:Droppingeventduetonowindowfocus:KeyEvent{action=ACTION
吴中乐
·
2020-08-03 02:35
错误分析
踩坑总结] nf_conntrack: table full,
dropping
packet
转载:https://testerhome.com/topics/7509netfilter/conntrack相关内核参数往往是用Linux服务器的互联网小公司业务量上去之后遇到的第3个“新手怪”。(第1位:进程可用的FD不足,第2位:IP临时端口不足+TIME_WAIT状态的连接过多导致无法建立新连接)很多人以为Linux经过这么多年优化,默认参数应该“足够好”,其实不是。默认参数面向“通用”
yangzhenzhen
·
2020-07-31 11:14
nf_conntrack: table full,
dropping
packet 连接跟踪表已满,开始丢包 的解决办法
nf_conntrack:tablefull,droppingpacket连接跟踪表已满,开始丢包的解决办法中午业务说机器不能登录,我通过USM管理界面登录单板的时候发现机器没有僵死,然后一看日志,g一下子就明白了tail-2000/var/log/messagesApr1012:48:35bj-push-pushserver83kernel:[95129.138804]__ratelimit:1
weixin_33974433
·
2020-07-31 10:39
Dropping
tests_0 1分数规划
http://poj.org/problem?id=2976#include#include#include#include#include#includeusingnamespacestd;typedeflonglongll;lla[1010];llb[1010];doubled[1010];intn,k;doubleeps=1e-6;boolcheck(doubleL){for(inti=1;
Gitfan
·
2020-07-27 23:29
d/ F -
Dropping
test.(ai+加和 bi+ n k 求最小分数)
加和二分为啥这样算nacertaincourse,youtakentests.Ifyougetaioutofbiquestionscorrectontesti,yourcumulativeaverageisdefinedtobe.Givenyourtestscoresandapositiveintegerk,determinehowhighyoucanmakeyourcumulativeavera
DS_HY
·
2020-07-14 22:26
待补题
ubuntu 开机出错disk by-uuid ########### does not exist
dropping
to a shell
ubuntu似乎经常出现这个情况,这已是我第三次遇到这个问题,前两次直接重新装个ubuntu,这次因为有重要的工作数据和众多已安装的软件工具,重装代价实在太大,果断还是修一修吧1.在initramfs命令下查看/dev的sda文件节点,我的下面有三个sda1,sda2,sda5,我的系统分区时sda12.系统启动到GRUB界面时,按e键进入GRUB启动菜单编辑,将linux一行root=uuid=
jake_wolf
·
2020-07-11 14:25
linux操作系统
启动时出现错误an error occurred during the file system check
dropping
you to a shell
启动时候出现错误。好好的系统突然启动时出现了***anerroroccurredduringthefilesystemcheck***Droppingyoutoashell;thesystemwillreboot***whenyouleavetheshell.Giverootpasswordformainteance(ortypeControl-Dfornormalstartup)是文件系统出了错
heyustudent
·
2020-07-11 07:25
linux模块
bug处理方法
Dropping
to a shell!
ALERT!UUID=xxxxxxxxxdoesnotexist.Droppingtoashell!文章目录ALERT!UUID=xxxxxxxxxdoesnotexist.Droppingtoashell!问题描述我的解决过程写在最后问题描述ubuntu18.04非正常关机后打不开了,先是黑屏显示:ACPIError:Needtype[Reference],found[Integer](____
qinxinger
·
2020-07-10 17:11
Linux
Vivado dubug core被删除解决方法(The debug hub core was not detected,
Dropping
logic with cellname:'xxx')
情景描述:使用Vivado2017.4书写Verilog代码,并且创建debugcore进行信号抓取。添加完debugcore并成功RunImplementaion,在IMPLEMENTATION的结构图中可以看到相应的ila_core和hub都已经建立。在生成bit文件的时候出现warning告知debugcore被丢掉了,因为没有在设备上找到相应的内容,警告截图如下:虽然bit文件可以正常生成
hb_wxz
·
2020-07-04 00:59
Rust 析构函数
("
Dropping
!");//当你的自定义类型变
心尘了
·
2020-07-02 03:47
rust
rust
nf_conntrack: table full,
dropping
packet. 终结篇
“连接跟踪表已满,开始丢包”!相信不少用iptables的同学都会见过这个错误信息吧,这个问题曾经也困扰过我好长一段时间。此问题的解决办法有四种(nf_conntrack在CentOS5/kernel<=2.6.19中名为ip_conntrack):一、关闭防火墙。简单粗暴,直接有效chkconfigiptablesoffchkconfigip6tablesoffserviceiptablesst
weixin_30585437
·
2020-06-27 21:20
Dropping
to a shell!
以清华同方一体机安装为例一、问题描述1,问题描述问题的现象是,清华同方一体机安装完成后,关机,启动,屏幕未进入桌面,屏幕打印如下信息。必现。—Bootargs(cat/proc/cmdline)—Checkrootdelay=(didthesystemwaitlongenough?)—Checkroot=(didthesystemwaitfortherightdevice?)—Missingmod
那棵树好像真的生气了
·
2020-06-25 02:12
系统问题分析
动态规划法(六)鸡蛋掉落问题(一)(egg
dropping
problem)
继续讲故事~~ 这天,丁丁正走在路上,欣赏着路边迷人的城市风景,突然发现前面的大楼前围了一波吃瓜群众。他好奇地凑上前去,想一探究竟,看看到底发生了什么事情。 原来本市的一位小有名气的科学家正在这幢大楼进行一个实验:某种材料的防护性能。他在大楼的底下铺了一层这种防护材料,想拿鸡蛋做实验,将鸡蛋从楼层掉下,看看鸡蛋从哪一层掉下去会摔碎,以此测试该材料的防护性能。这就是著名的鸡蛋掉落问题(egg
山阴少年
·
2020-04-09 04:36
Networking is shit
"Theoppositeofsuccessisn'tfailure;itisname-
dropping
."
33_SSC
·
2020-03-20 05:22
679 -
Dropping
Balls
Problem.png看到这题一开始的想法就是直接模拟一棵完全二叉树,然后根据每一层的开关值来决定小球向左走还是向右走。需要注意的是,若完全二叉树根节点编号为1,则编号为n的结点的左孩子的标号为2n,右孩子的标号为2n+1。然而。。这题直接模拟会超时。。于是百度之后发现了一种直接根据小球的奇偶性来判断它往哪边落的方法,还是挺强的。。(结果做完才发现书上后面也讲了会超时。。手动再见。。)直接模拟TL
不会积
·
2020-02-28 18:08
UVA679 -
Dropping
Balls 题解
这道题显然可以直接模拟前\(I\)个小球的掉落,最终即可得解.但是,很明显,这么做会使时间复杂度直接爆炸成\(O(l\timesD\timesI)\),已然是力不从心.仔细观察,可以简单地发现:我们只需模拟第\(I\)个小球的运动即可,通过判断当前节点上已经经过了的小球数的奇偶性,可以轻松判断第\(I\)个小球的运动路线(这句话是整道题解题方法的精髓,请仔细理解后看下面的代码).Code:#inc
xhw_233
·
2020-01-22 12:00
Egg
Dropping
Puzzle
题目略答案这个答案LeetcodeTLE了,但是面试里面可以说。classSolution{publicintsuperEggDrop(intK,intN){int[][]f=newint[N+1][K+1];for(inti=1;i<=N;i++){for(intj=1;j<=K;j++){if(i==1){f[i][j]=1;continue;}if(j==1){f[i][j]=i;conti
BLUE_fdf9
·
2019-12-17 03:36
kernel: nf_conntrack: table full,
dropping
packet
今晚系统割接,在修改组件配置重启服务后,主机夯住了,操作系统命令无法执行,主机无法正常登录将组件服务停止后,又恢复正常查看主机mesg信息,有大量的kernel异常信息kernel:nf_conntrack:tablefull,droppingpacket这是iptables的报错信息“连接跟踪表已满,开始丢包”通过ss查看socket使用情况(停业务后)Total:5281(kernel5488
tonnytangy
·
2019-12-17 03:00
cisco ap客户端无规律掉线
k9ciscoair-ap1832I-H-k9首先根据这个帖子https://community.cisco.com/t5/other-wireless-mobility-subjects/clients-
dropping
-from-wireless-aps
曲珂
·
2019-11-08 10:00
poj2976
Dropping
tests
DroppingtestsTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:25137Accepted:8295DescriptionInacertaincourse,youtakentests.Ifyougetaioutofbiquestionscorrectontesti,yourcumulativeaverageisdefinedtobe.
Echo宝贝儿
·
2019-10-10 20:00
kernel: nf_conntrack: table full,
dropping
packet错误处理过程
报错信息:查看症状:服务器负载正常,但请求大量超时,服务器/应用访问日志看不到相关请求记录。在dmesg或/var/log/messages看到大量以下记录:kernel:nf_conntrack:tablefull,droppingpacket.原因:服务器访问量大,内核netfilter模块conntrack相关参数配置不合理,导致IP包被丢掉,连接无法建立。查看nf_conntrack表最大
白衣不染尘
·
2019-09-05 15:54
linux调优
pandas怎么过滤not in
https://stackoverflow.com/questions/27965295/
dropping
-rows-from-dataframe-based-on-a-not-in-conditionUSE
小帅的私人空间
·
2019-04-17 07:41
python
【POJ2976】
Dropping
tests - 01分数规划
DescriptionInacertaincourse,youtakentests.Ifyougetaioutofbiquestionscorrectontesti,yourcumulativeaverageisdefinedtobe.Givenyourtestscoresandapositiveintegerk,determinehowhighyoucanmakeyourcumulativeav
lrj124
·
2018-09-28 21:00
POJ2976
Dropping
tests 01规划+二分
第一次接触这种类型的题。。贴上博客:https://blog.csdn.net/mosquito_zm/article/details/78585094说实话想清楚了并不难,我还是太菜了,二分到现在都写得不好QAQ...附上AC代码吧:#include#include#include#include#include#includeusingnamespacestd;constintINF=0x3f
Cc_Sonia
·
2018-08-10 20:54
ACM
算法
算法-01规划
算法-二分
ERROR 1010 (HY000): Error
dropping
database 解决方案
报错:mysql>dropdatabasetest;ERROR1010(HY000):Errordroppingdatabase(can'trmdir'./test/',errno:17)解决方法:mysql>select@@datadir;+-----------------+|@@datadir|+-----------------+|/var/lib/mysql/|+------------
运维的戏子
·
2018-06-12 08:21
MySQL
数据库管理
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他