李明杰(MJ)高级讲师
多年软件开发经验和教学经验,尤其精通Android和iOS平台的开发,还开发了2个iOS的流行开源框架(MJRefresh、MJExtension), 目前在国内的使用率非常高。
李老师曾负责主导开发过装饰ERP系统手机端、服装连锁管理系统手机及平板客户端、自动鸡尾酒调酒机系统、网络斗地主RPG、游戏 引擎等。曾以架构师及技术总监的角色帮客户成功获得多家风投,并上了中央电视台《给你一个亿》节目。除了Android和iOS平台,李老师也深入研究 HTML5、phoneGap、Sencha-Touch、Less、Bootstrap、AngularJS、NodeJS等前端利器。
2015年8月 CCTV发现之旅《华商论见》栏目特约嘉宾,受邀参加节目《互联网 浪潮下的创业之道》,接受央视著名主持人水均益采 访。2015年10月 曾受邀加入中国经贸代表团随总理出访韩国,参与总理访韩午餐会以及中日韩工商峰会。2015年12月 荣获中国经济新模 式创新与发展峰会“2015中国IT教育培训行业**具创新人物”奖。
李老师不但具有丰富的软件开发经验,并且懂得如何把自己掌握的知识及技能传授给他人,曾给多家企业提供Android/iOS技术培训 、技术支持、技术咨询等服务。李老师的授课视频深得学生们的喜爱,已培养出好几千名iOS程序员。
java入门要注意什么
学习java就像是一个种花的过程,不断地为其施肥浇水,它才会茁壮成长。 而我们学习java,就要不断的充实自己、提升自己,才能获得更多机会。很多开始学习java编程的小白,经常就会被概念、定义什么的搞糊涂。当分类 、对象、接口、构造函数等等各种专业名词出现的时候,你一定是脑子里好像一片空白,根本就搞不懂这些字眼的意思和关系,而且,这种情况下,很 容易导致你丧失自信心,开始逃避、拒绝,这些小白经常遇到的情况在我刚接触java的时候也遇见了,但是好在我足够幸运,遇见了诚筑说。我现在已 经是公司的项目经理了,今天,我为大家来总结了一些经验和建议,希望能够帮助到大家。
一点:熟练基本的j2seAPI
除去java语言本身的语法之外呢,要懂得并且熟练j2seAPI的API也是非常有 必要的,在这里,就建议大家首先去掌握字符串的处理、异常的处理、容器、输入输出、线程等,这些相对来说较为重要的。还有就是API的内容是非 常庞大的,关于API,一定要懂得查询API的文件说明,在了解了其作用用途或者目的才能够进行相对于的程序。
二点:稳固java的语法基础
学习java一定要学会使用java的程序语言,用来编写程序,但是学习程序语 言就要熟悉语法是怎么使用的。程序语言其实也是一种语言,不过跟人类的语言不同,这种语言是要和计算机沟通交流,那怎么做才能熟悉这种语言呢 ,我给出的建议是多看别人写的程序,了解人家是怎么用java来解决问题的。然后再找类似的程序去练习了,这样就能够从实际操作中检验自己是否真 的知道该怎么去解决问题了。
三点:加入贴吧论坛多参与讨论
根据我当时的经验,在大家学习的过程中,如果有人可以参与话题,共同讨 论的话,会加快你学习的速度。所以大家可以和我一样,找一个技术讨论的地方,贴吧啊,论坛啊都可以,在这里进行讨论,毕竟大家有着共同的目标 和理想,有着共同的话题可聊,这样的话,又大大节省了学习的时间。
学完基本的java语法呢,现在就该用java来进行实际的编程了,假如你需要 编写窗口程序,那就学Swing窗口设计;假如你要编写数据库什么的,那就学JDBC等等。
Java课程介绍
一阶段:Java基础
内容有Java开发介绍、Java数组、Java面向对象、常用基础类、集合
、线程和I/O、异常处理、项目(坦克大战、打飞机等)。
二阶段:JavaWeb
内容有HTML5入门、CSS3入门、Javascript、MySQL使用、JDBC连接池
、Servlet、ajax、jQuery、项目。
三阶段:Java框架
内容有Struts2、Hibernate5、JPA、Spring4、BootStrap、echarts
图表插件使用、Maven、SpringData、SpringMVC。
四阶段:Java 云数据
亿级并发架构演进、Linux基础、搭建tomcat环境、MysQL高级、
memcached、Redis、MongoDB(而选一)、elasticsearch、cobar、Quartz、nginx反向代理和负载均衡、SSL证书配置、Keepalived双活、Haproxy、
LVS、nignx(三选一)、Rpc和Dobbo、ActiveMQ队列、Hadoop、项目(上亿人并发的抢票系统)。
保留道路 Road
>
ip2016 模拟试题 复赛 提高组 day1
保留道路
(road.cpp/c/pas)
【问题描述】
很久很久以前有一个国家,这个国家有N个城市,城市由1,2,3,…,N标号,城市间有M条双向道路,每条道路都有两个属性g和s,两个城市间可能有多条道路,并且可能存在将某一城市与其自身连接起来的道路。后来由于战争的原因,国王不得不下令减小花费从而关闭一些道路,但是必须要保证任意两个城市相互可达。
道路花费的计算公式为wG*max{所有剩下道路的属性g} wS*max{所有剩下道路的属性s},其中wG和wS是给定的值。国王想要在满足连通性的前提下使这个花费**小,现在需要你计算出这个花费。
【输入格式】
输入文件名为road.in。
**行包含两个正整数N和M。第二行包含两个正整数wG和wS。
后面的M行每行描述一条道路,包含四个正整数u,v,g,s,分别表示道路连接的两个城市以及道路的两个属性。
【输出格式】
输出文件名为road.out。
输出一个整数,表示**小花费。若无论如何不能满足连通性,输出-1。
【输入输出样例】
road.in
3 3 2 1 1 2 10 15 1 2 4 20 1 3 5 1
road.out
30
【数据规模与约定】
对于10%的数据,N≤10,M≤20;对于30%的数据,N≤100,M≤1000;对于50%的数据,N≤200,M≤5000;
对于100%的数据,N≤400,M≤50000,wG,wS,g,s≤1000000000。
代码系转载
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int MAXN=4e2,MAXM=5e4; const ll INF=1e17; int N,M,wS,wG; int cnt; int fa[MAXN 1]; ll ans=INF; struct node { int x,y;bool vis; ll g,s; } e[MAXM 1],tree[MAXM 1],tmp[MAXM 1]; bool cmp(const node & a,const node & b) { if(a.g==b.g) return a.s<b.s; return a.g<b.g; } int find(int x) { if(fa[x]==x) return x; return fa[x]=find(fa[x]); } void small(ll maxg) { int i; for(i=1;i<=cnt;i ) tmp[i]=tree[i],tmp[i].vis=false; ll maxs=0,tot=0; for(i=1;i<=N;i ) fa[i]=i;//初始化并查集 for(i=1;i<=cnt;i ) { int a=find(tree[i].x),b=find(tree[i].y); if(a!=b) { maxs=max(maxs,tree[i].s); fa[a]=b; tot ; tmp[i].vis=true; } if(tot==N-1) { int p=0; for(i=1;i<=cnt;i ) if(tmp[i].vis) tree[ p]=tmp[i]; cnt=p; ans=min(ans,maxg maxs); break; } } } int main() { freopen("road.in","r",stdin); freopen("road.out","w",stdout); int i,j; cin>>N>>M>>wG>>wS; for(i=1;i<=M;i ) { scanf("%d%d%I64d%I64d",&e[i].x,&e[i].y,&e[i].g,&e[i].s); e[i].g*=(ll)wG,e[i].s*=(ll)wS; } sort(e 1,e M 1,cmp); for(i=1;i<=M;i )//遍历每条边 { if(e[i].g e[i].s>ans) continue;//剪枝, //若现在的这条边的花费比之前算的ans还大就跳过 int pos=cnt 1; for(j=1;j<=cnt;j ) if(tree[j].s>e[i].s) { pos=j; break; } if(pos==cnt 1) tree[ cnt]=e[i]; else { for(j= cnt;j>=pos 1;j--) tree[j]=tree[j-1]; tree[pos]=e[i]; } small(e[i].g); } if(ans==INF) cout<<-1<<endl; else cout<<ans<<endl; return 0; }
相关推荐: