- lightoj 1148 - Mad Counting (数学规律&模拟)
没有能与不能只有想与不想
模拟好题lightoj
1148-MadCountingPDF(English)StatisticsForumTimeLimit:0.5second(s)MemoryLimit:32MBMobwashijackedbythemayoroftheTown"TruthTown".MayorwantsMobtocountthetotalpopulationofthetown.Nowthenaiveapproachtothisp
- Tarjan求桥和割点与双连通分量【未成形】
keyboarder_zsq
tarjanTarjan算法
一下许多内容摘自:北京大学暑期课《ACM/ICPC竞赛训练》强连通分支、桥和割点北京大学信息学院郭炜还有很多网上神牛们的讲解/论文。不过可能在摘录,或者加自己的见解时产生错误,望指出,谢谢!之前只学了个强连通Tarjan算法,然后又摸了缩点操作;然后今天在lightoj摸了一道模板题,是求所有桥的题;然后发现,要把(割点,桥,双连通分量,最小割边集合,割点集合)都理一理呀!割点在一个无向连通图里面
- LightOJ1106 Gone Fishing
weixin_30471561
GoneFishingJohnisgoingonafishingtrip.Hehashhoursavailable,andtherearenlakesintheareaallreachablealongasingle,one-wayroad.Johnstartsatlake1,buthecanfinishatanylakehewants.Hecanonlytravelfromonelaketoth
- Acwing 阿拉丁和飞毯 / LightOJ - 1341(加强数据过后的版本)
这一wa是晚安
kuangbin-数学数学算法
这道题因为加强了数据,所以以往大多数题解是过不了了,因为a,b≤1012\le10^{12}≤1012,我们进行质因数分解,和枚举小于b的且是a的约数这两部分大多数题解都会超时,思路还是以往的思路,但是这里要采用更加优化的算法,而且当我们特判b∗b≥ab*b\geab∗b≥a时这儿会爆longlong的所以我们需要用__int128来储存b*b,那么我们这儿用了PR算法对大数进行质因数分解,时间复
- lightoj1060(求字符串第k大排列)组合数学
谢符宝
组合数学
题意:求给定字符串(有重复字符)第k大排列。解法:先判断字符串的所有排列是否够k个。然后从左向右每一位每一位确定。简单的组合数学。代码:/*****************************************************author:xiefubao*******************************************************/#pragma
- 组合数取模之逆元
yyPurpose_forever
数论数学
TimeLimit:2000MSMemoryLimit:32768KB64bitIOFormat:%lld&%lluLightOJ1067DescriptionGivenndifferentobjects,youwanttotakekofthem.Howmanywaystocandoit?Forexample,saythereare4items;youwanttotake2ofthem.So,yo
- 图论-最短路-专题
michelle829
暑假算法
题目列表最短路1.POJ-3268SilverCowParty2.P4366[Code+#4]最短路3.POJ-3159Candies4.POJ-3169Layout5.POJ-1847Tram6.POJ-1062昂贵的聘礼7.LightOJ-1074ExtendedTraffic8.HDU-4725TheShortestPathinNyaGraph9.P1119灾后重建10.P1522[USAC
- LightOJ1030-Discovering Gold-dp
zyz_3_14159
dfsdp
题目大意:有n个点,开始在1这个点,每次用筛子前进,每到达一个新的点,就把当前的点的金子收下,如果那个点>n就返回去重新抛,问你最后金子的期望是多少;题目解析:概率dp,一开始一直想着从前面开始dp,肯定不可以因为时间复杂度太高,应该从后面开始dp,这样就是记忆化搜索了,时间复杂度会大大降低;AC代码:#include#include#include#include#includeusingnam
- LightOj:1030-Discovering Gold(期望dp模板)
GoldenFingers
动态规划-概率dplightoj期望dp
传送门:http://www.lightoj.com/volume_showproblem.php?problem=1030DiscoveringGoldTimeLimit:2second(s)MemoryLimit:32MBProgramDescriptionYouareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcelloft
- LightOJ - 1030 Discovering Gold 期望 DP
zhiaifangao
概率期望数学数论
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- Discovering Gold (LightOJ-1030)期望DP
Stephencurry‘s csdn
动态规划-期望概率DP期望概率DP
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- Discovering Gold LightOJ - 1030(概率DP求期望)
Top_Spirit
期望&概率DPacm概率DP
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- 1030 - Discovering Gold (lightoj 1030 概率DP)
fisty
-----概率动态规划lightoj
1030-DiscoveringGoldPDF(English)StatisticsForumTimeLimit:2second(s)MemoryLimit:32MBYouareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouarei
- Discovering Gold LightOJ - 1030 (概率dp)
weixin_30314631
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- Discovering Gold LightOJ - 1030 (概率dp)
Do_You_Ever_Shine
概率dp
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- Discovering Gold LightOJ - 1030 (概率dp+期望)
untilyouydc
动态规划
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- Discovering Gold LightOJ - 1030(概率 dp)
做一只大熊猫
概率DP
题目链接题意有一个1*n的表格,每个格子上有一些金币,刚开始在第一个格子上,在当前位置,每次我们可以摇一个6面筛子,摇到几向前走几步,当摇的点数太大,使人走出表格的时候,要重新摇筛子直到能不走出表格位置,走到第n个格子位置,求走到n的期望得到的金币数量.思路期望dp,从后往前递推,dp[i]表示从i位置到n位置的期望得到的金币数,dp[i]可以从i后面的min(6,n-i)个位置转移过来,假设这个
- B - Discovering Gold LightOJ - 1030(概率 DP)
做一只大熊猫
概率DP
B-DiscoveringGoldLightOJ-1030(概率DP)题意n个位置排成一排,第i个位置有ai数量的钱,一个人刚开始在第1个位置,开始摇一个六面色子,要到几走几步,如果摇得点数致使动当前位置走到>n的位置的话,这个时候重新摇,直到走到n位置游戏结束。思路第一种思路就是求的,从初始位置走到其他位置的概率,怎么求这个概率呢?就是一个地推方式的简单dp,那么我们所求的期望就是,∑i=1n\
- Discovering Gold LightOJ - 1030(概率DP)
ltrbless
ACM数学动态规划
题目链接:DiscoveringGoldLightOJ-1030题目描述:有n堆金矿,位置为1-n上,告诉你了每个位置金矿的数目a[i]。现在让你从1这个点开始挖金矿,下一个你要去的点通过掷骰子来决定,就是当前位置坐标+骰子数(骰子数:1-6),为你挖到金矿数目的期望。解题思路:因为起点一定要从1开始,所以应该倒着推才能保证从1这个点开始挖(最后输出的也是dp[1])。对于第i个点,他的期望值是:
- lightoj1030 - Discovering Gold【概率dp求期望】
飘摇的尘土
概率dp动态规划lightoj1030-Discov
1030-DiscoveringGoldPDF(English)StatisticsForumTimeLimit:2second(s)MemoryLimit:32MBYouareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouarei
- lightoj 1030-B - Discovering Gold (概率dp)
awow80285
题意:有一个直线的金矿,每个点有一定数量的金子;你从0开始,每次扔个骰子,扔出几点就走几步,然后把那个点的金子拿走;如果扔出的骰子超出了金矿,就重新扔,知道你站在最后一个点;问拿走金子的期望值是多少;很明显如果当前位置为i那么他可以到达的位置为min(n,i~i+6)所以从i点开始获得金子的期望值就是Ei=E(i+1)/6+E(i+2)/6+E(i+3)/6+E(i+4)/6+E(i+5)/6+E
- LightOJ1030---Discovering Gold(概率dp)
tokers
DPLightOJdp
Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddice.IfyougetXinthediceafterthrowing,yo
- 期望DP——F - Discovering Gold LightOJ - 1030
GreyBtfly王宝彤
概率DP期望概率DP
博客目录返回二级目录——kaugnbin概率dp习题集一、原题题目传送门Youareinacave,alongcave!Thecavecanberepresentedbya1xNgrid.Eachcellofthecavecancontainanyamountofgold.Initiallyyouareinposition1.Noweachturnyouthrowaperfect6sideddic
- LightOJ1030 B - Discovering Gold(概率dp 期望入门)
Code92007
#概率dp/期望/概率概率dp期望
题意有一排洞穴,你在第一个洞穴,可以获得该洞穴的黄金,然后掷标有1-6的骰子,是几就往下走几步,并得到该洞穴的黄金。当离终点小于6步且不合法时就重掷直到合法为止。求起点出发的黄金的期望。题解概率dp入门题。考虑到自己dp比较菜,概率dp更菜,就做一个总结一个吧。就是你在这点的期望,等于这个点的黄金数,加上你能走到所有的所有合法点的期望的平均。那我能走到的所有合法点期望怎么求?显然是从后往前dp,或
- 【概率&期望】Discovering Gold LightOJ - 1030
leoxry
知识体系错误反思题意思考概率-期望概率-期望
Think:1知识点:概率+数学期望2题意:3解题思路:4解题步骤:(1):递推求解每一个点的概率(2):通过期望公式计算累加每一个点的期望vjudge题目链接以下为Accepted代码#include#include#includeusingnamespacestd;doublerec[1014],dp[1014];intmain(){intcas=1,T,n,i,j;scanf("%d",&T
- 2020年9月21日(完)
梦想是教小朋友算法
51Nod1383整数分解为2的幂51Nod3212数字变位51Nod2128前缀异或LightOJ1341AladdinandtheFlyingCarpetPOJ3061SubsequenceCodeforces1263ASweetProblem51Nod1383整数分解为2的幂题目链接:点击这里1=12=1+12=23=1+1+13=1+24=1+1+1+14=1+1+24=2+24=45=1
- LightOJ-1070- Algebraic Problem (矩阵快速幂)
风去幽墨
数论LightOJ矩阵快速幂
原题链接:Giventhevalueofa+bandabyouwillhavetofindthevalueofan+bn.aandbnotnecessarilyhavetoberealnumbers.InputInputstartswithanintegerT(≤10000),denotingthenumberoftestcases.Eachcasecontainsthreenon-negativ
- lightoj 1031 被区间dp虐哭...看题解才学会
NineFailure
ACM练习动态规划
Youareplayingatwoplayergame.InitiallytherearenintegernumbersinanarrayandplayerAandBgetchancetotakethemalternatively.Eachplayercantakeoneormorenumbersfromtheleftorrightendofthearraybutcannottakefrombot
- LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数)
jason_star
数论
题目大意:首先你需要明白欧拉函数是什么:欧拉函数指的是n以内与n互质的所有数的个数。假如n是质数,很明显,它的欧拉函数等于n-1;题目给你n个x,然后你要求出n个数的和,这n个数对应的欧拉函数大于x这道题我就是这么乱搞,然后过了。我也说不清楚为什么。反正总结一句话就是欧拉函数大于等于x的那个数就是x+1之后的第一个质数打出100w内的素数表。然后找到x+1之后的第一个素数就ok了。代码当中还有打出
- LightOJ 1422 Halloween Costumes (区间dp)
mousehao001
动态规划
1422-HalloweenCostumesPDF(English)StatisticsForumTimeLimit:2second(s)MemoryLimit:32MBGappuhasaverybusyweekendaheadofhim.Because,nextweekendisHalloween,andheisplanningtoattendasmanypartiesashecan.Since
- Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor
yangshangchuan
信息抽取HtmlExtractor精准抽取信息采集
HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取。
HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效。
如
- java编程思想 -- 多态
百合不是茶
java多态详解
一: 向上转型和向下转型
面向对象中的转型只会发生在有继承关系的子类和父类中(接口的实现也包括在这里)。父类:人 子类:男人向上转型: Person p = new Man() ; //向上转型不需要强制类型转化向下转型: Man man =
- [自动数据处理]稳扎稳打,逐步形成自有ADP系统体系
comsci
dp
对于国内的IT行业来讲,虽然我们已经有了"两弹一星",在局部领域形成了自己独有的技术特征,并初步摆脱了国外的控制...但是前面的路还很长....
首先是我们的自动数据处理系统还无法处理很多高级工程...中等规模的拓扑分析系统也没有完成,更加复杂的
- storm 自定义 日志文件
商人shang
stormclusterlogback
Storm中的日志级级别默认为INFO,并且,日志文件是根据worker号来进行区分的,这样,同一个log文件中的信息不一定是一个业务的,这样就会有以下两个需求出现:
1. 想要进行一些调试信息的输出
2. 调试信息或者业务日志信息想要输出到一些固定的文件中
不要怕,不要烦恼,其实Storm已经提供了这样的支持,可以通过自定义logback 下的 cluster.xml 来输
- Extjs3 SpringMVC使用 @RequestBody 标签问题记录
21jhf
springMVC使用 @RequestBody(required = false) UserVO userInfo
传递json对象数据,往往会出现http 415,400,500等错误,总结一下需要使用ajax提交json数据才行,ajax提交使用proxy,参数为jsonData,不能为params;另外,需要设置Content-type属性为json,代码如下:
(由于使用了父类aaa
- 一些排错方法
文强chu
方法
1、java.lang.IllegalStateException: Class invariant violation
at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
at o
- Swing中文件恢复我觉得很难
小桔子
swing
我那个草了!老大怎么回事,怎么做项目评估的?只会说相信你可以做的,试一下,有的是时间!
用java开发一个图文处理工具,类似word,任意位置插入、拖动、删除图片以及文本等。文本框、流程图等,数据保存数据库,其余可保存pdf格式。ok,姐姐千辛万苦,
- php 文件操作
aichenglong
PHP读取文件写入文件
1 写入文件
@$fp=fopen("$DOCUMENT_ROOT/order.txt", "ab");
if(!$fp){
echo "open file error" ;
exit;
}
$outputstring="date:"." \t tire:".$tire."
- MySQL的btree索引和hash索引的区别
AILIKES
数据结构mysql算法
Hash 索引结构的特殊性,其 检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢
- JAVA的抽象--- 接口 --实现
百合不是茶
抽象 接口 实现接口
//抽象 类 ,方法
//定义一个公共抽象的类 ,并在类中定义一个抽象的方法体
抽象的定义使用abstract
abstract class A 定义一个抽象类 例如:
//定义一个基类
public abstract class A{
//抽象类不能用来实例化,只能用来继承
//
- JS变量作用域实例
bijian1013
作用域
<script>
var scope='hello';
function a(){
console.log(scope); //undefined
var scope='world';
console.log(scope); //world
console.log(b);
- TDD实践(二)
bijian1013
javaTDD
实践题目:分解质因数
Step1:
单元测试:
package com.bijian.study.factor.test;
import java.util.Arrays;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.bijian.
- [MongoDB学习笔记一]MongoDB主从复制
bit1129
mongodb
MongoDB称为分布式数据库,主要原因是1.基于副本集的数据备份, 2.基于切片的数据扩容。副本集解决数据的读写性能问题,切片解决了MongoDB的数据扩容问题。
事实上,MongoDB提供了主从复制和副本复制两种备份方式,在MongoDB的主从复制和副本复制集群环境中,只有一台作为主服务器,另外一台或者多台服务器作为从服务器。 本文介绍MongoDB的主从复制模式,需要指明
- 【HBase五】Java API操作HBase
bit1129
hbase
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.ha
- python调用zabbix api接口实时展示数据
ronin47
zabbix api接口来进行展示。经过思考之后,计划获取如下内容: 1、 获得认证密钥 2、 获取zabbix所有的主机组 3、 获取单个组下的所有主机 4、 获取某个主机下的所有监控项  
- jsp取得绝对路径
byalias
绝对路径
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
代码” ${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
- Java定时任务调度:用ExecutorService取代Timer
bylijinnan
java
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是:
如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被
- SQL 优化原则
chicony
sql
一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统
- java 线程弹球小游戏
CrazyMizzz
java游戏
最近java学到线程,于是做了一个线程弹球的小游戏,不过还没完善
这里是提纲
1.线程弹球游戏实现
1.实现界面需要使用哪些API类
JFrame
JPanel
JButton
FlowLayout
Graphics2D
Thread
Color
ActionListener
ActionEvent
MouseListener
Mouse
- hadoop jps出现process information unavailable提示解决办法
daizj
hadoopjps
hadoop jps出现process information unavailable提示解决办法
jps时出现如下信息:
3019 -- process information unavailable3053 -- process information unavailable2985 -- process information unavailable2917 --
- PHP图片水印缩放类实现
dcj3sjt126com
PHP
<?php
class Image{
private $path;
function __construct($path='./'){
$this->path=rtrim($path,'/').'/';
}
//水印函数,参数:背景图,水印图,位置,前缀,TMD透明度
public function water($b,$l,$pos
- IOS控件学习:UILabel常用属性与用法
dcj3sjt126com
iosUILabel
参考网站:
http://shijue.me/show_text/521c396a8ddf876566000007
http://www.tuicool.com/articles/zquENb
http://blog.csdn.net/a451493485/article/details/9454695
http://wiki.eoe.cn/page/iOS_pptl_artile_281
- 完全手动建立maven骨架
eksliang
javaeclipseWeb
建一个 JAVA 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=App
[-Dversion=0.0.1-SNAPSHOT]
[-Dpackaging=jar]
建一个 web 项目 :
mvn archetype:create
-DgroupId=com.demo
-DartifactId=web-a
- 配置清单
gengzg
配置
1、修改grub启动的内核版本
vi /boot/grub/grub.conf
将default 0改为1
拷贝mt7601Usta.ko到/lib文件夹
拷贝RT2870STA.dat到 /etc/Wireless/RT2870STA/文件夹
拷贝wifiscan到bin文件夹,chmod 775 /bin/wifiscan
拷贝wifiget.sh到bin文件夹,chm
- Windows端口被占用处理方法
huqiji
windows
以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................1、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&
- 开源ckplayer 网页播放器, 跨平台(html5, mobile),flv, f4v, mp4, rtmp协议. webm, ogg, m3u8 !
天梯梦
mobile
CKplayer,其全称为超酷flv播放器,它是一款用于网页上播放视频的软件,支持的格式有:http协议上的flv,f4v,mp4格式,同时支持rtmp视频流格 式播放,此播放器的特点在于用户可以自己定义播放器的风格,诸如播放/暂停按钮,静音按钮,全屏按钮都是以外部图片接口形式调用,用户根据自己的需要制作 出播放器风格所需要使用的各个按钮图片然后替换掉原始风格里相应的图片就可以制作出自己的风格了,
- 简单工厂设计模式
hm4123660
java工厂设计模式简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
- maven笔记
zhb8015
maven
跳过测试阶段:
mvn package -DskipTests
临时性跳过测试代码的编译:
mvn package -Dmaven.test.skip=true
maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。
指定测试类
mvn test
- 非mapreduce生成Hfile,然后导入hbase当中
Stark_Summer
maphbasereduceHfilepath实例
最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没有达到理想的那种速度,然后就想到了这种方式,但是网上多是用mapreduce来实现入库,而现在的需求是实时入库,不生成文件了,所以就只能自己用代码实现了,但是网上查了很多资料都没有查到,最后在一个网友的指引下,看了源码,最后找到了生成Hfile
- jsp web tomcat 编码问题
王新春
tomcatjsppageEncode
今天配置jsp项目在tomcat上,windows上正常,而linux上显示乱码,最后定位原因为tomcat 的server.xml 文件的配置,添加 URIEncoding 属性:
<Connector port="8080" protocol="HTTP/1.1"
connectionTi