acm

hrbust 1328

丶灬走出姿态 提交于 2020-01-08 13:19:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 题目链接: hrbust 1328 这是一道数论的题目,求解方法还是挺巧妙的,尽管够基础。 首先要知道的是多个数的最小公倍数究竟怎么求,有一个公式为lcm(a, b, c) = lcm(lcm(a,b),c),这个公式对n个数一样也成立。 还有一种求法,是将这多个数均写成素数因子的幂相乘的形式(唯一分解定理),然后对每个素数因子,只取最大的指数,相乘就是最小公倍数了。 这里用的是第二种想法,其实这种想法也是够直观,最接近直觉的。如果A(n)和A(n-1)是相等的,那么说明n的素数因子幂相乘的形式中,没有一个素数因子的幂是大于A(n-1)对应素数的幂的。 而如果n含有两个及以上素数因子,比如(a^x)*(b^y),那x和y均不会超过A(n-1)对应素数的幂,因为a^x和b^y都是小于n的,A(n-1)中a和b的指数一定大于等于x和y。如果n可以写成a^x这种形式,那么在A(n-1)的a因子的指数一定不会超过x,因为这么大的指数是第一次出现的(特别地,当x为1时,n为素数)。 #include <cstdio> #include <vector> #include <iostream> using namespace std; vector<int> primes; int not_prime[1010]; int

POJ -- 1182 食物链

纵饮孤独 提交于 2020-01-07 05:02:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 题目网址 : POJ -- 1182 这是一道利用并查集模拟的题目,也是并查集的裸题。 乍一看好像有点麻烦,因为会觉得动物们来回吃来吃去情况就会变得越来越复杂。 其实无论X和Y是同类还是捕食关系,归根结底都是集合合并的问题(捕食关系“错位”一下也是对等合并)。 考虑什么时候会发生冲突?冲突的情况只有一个,那就是两个有交集的食物链合并,并且合并的时候发生错位,也就是ABC不对等合并。另外的情况都是元素X所在的食物链和元素Y所在的食物链没有交集,这样合并后更新就好。 举个例子,就是你可以ABC和ABC合并, 也可以ABC和DEF合并,但是绝对不能ABC和BCA或者ACB合并。 原因是你现在获取了两个元素X和Y,他们俩要么处于同一个食物链中,要么处于不同食物链中,不同食物链可以直接合并,相同食物链只能对等合并(其实也就是不用合并),不能错位合并。 并查集是一种树结构,有一个特别典型的特性:只要不是根节点,就先获取根节点再做处理。 其实看过并查集的实现就会发现,如果一个节点不是根节点,那么跟这个节点有关的信息都是没意义的。因为并查集只保证根节点的信息具有时效性,其他非根节点的节点都只有一个作用,那就是找到根节点。 贴下代码,这个模拟的过程还是比较恶心人的。 #include <cstdio> #include

2016年的总结

无人久伴 提交于 2020-01-04 23:20:32
  距离大一入学已经经过了两年半的时间,离我第一次接触C语言也过去了两年半。向王瑞洲(以下简称GodWang)请教字符串的读入、01背包的情景还历历在目,弹指一挥间,如今已是大三。   在高考结束的时候,莫名其妙的只想填计算机类的专业,也许是出于对编程的好奇,又或许是觉得会编程的人特别厉害。在纠结了很久是选择计算机还是软件工程之后,我决定选择软件工程,因为我对硬件方面没有太大的兴趣。就这样,我和爸爸妈妈将全国带有软件工程专业的学校都找了出来,寻找自己能去的地方。最后,我来到了这里——浙江财经大学信息学院。   大一入学第一天晚上,张帅老师和其他另外几个老师就来我们的寝室,和我们讲了很多大学生活学习上的事,提及了ACM,那应该是我第一次听到ACM这个名词。那时的我,只是一个萌新,只听到这是一个超级厉害的编程竞赛、训练很辛苦,在我的脑中也只是短暂的停留,并没有太多的留意。那天晚上,倒是我会变魔术的事情被老师们知道了,在军训中、一元钱活动以及新加坡学生访问我们学院的时候,老师就让我上去表演魔术。   大一军训结束,开始正式的大学生活。其中有一门《C语言程序设计基础》的课程,是陈老师给我们班上的。在课后,老师总是会在学校OJ上布置一些作业,那也是我第一次知道了OJ这种系统。国庆回家,第一次做作业就遇到了斐波那契数列,至今我还清晰的记得,第一次写斐波那契数列,向厉伟键学长和沈雯学姐求助

第一次ACM赛后总结及感悟

不羁的心 提交于 2020-01-01 04:59:14
2014 "嘉杰信息"杯 ACM/ICPC湖南程序设计邀请赛暨第六届湘潭程序设计比赛 赛后总结,尽管已经是大二第二学期了,这却是我的第一次真正的ACM比赛经历,大一尽管说就已经进了ACM队,感觉是打了一年酱油,有这样的比赛机会也没有勇气去參加,感觉实力太菜了,到了大二感觉再不努力或许就没机会了,从上学期到如今吧,在oj上刷了差点儿相同200多道题,相对于一些大神来说是远远还不够的,比别人大一的水平还差,至少相对我大一的水平有了一定的提升,最终鼓足勇气向老师提出參加这次ACM竞赛,也就是在这学期,听取一些学长的建议,开通了博客,记录和积累一些自己做过的题,还要坚持写下去! 就在以下的这样的情况下,開始了我的处女赛,感觉不受打击就不会有成长,仅仅有在一次次的打击中吸取经验,成为自己前进的动力,这次比赛感觉好多学校都也是派的菜鸟队过来试水的,重点还是10月份的省赛,可是相对那些队,我们的水平也还是赶不上啊!弱校的ACMer的出路,也仅仅有拿到奖牌才干改变学校的一些现状,脱离我们如今这个恶性循环。 以下回到今天的这次比赛,比赛刚開始,题目一发下来,我一看全是英文题,曾经没遇到都是英文题的情况,(还好题目都不是非常长,英文也不算非常难)我们先開始就看的是a题,看了一会LX说好像有点思路,然后就让他写了一下,后面測试了一下,发现肯定会超时,我们就说往后面看一下后面的题,后来DT说e题能够搞,

Just Me, Myself & I

白昼怎懂夜的黑 提交于 2019-12-30 23:14:17
两年后看到这篇文章,觉得好羞耻。。。不过人这种生物,总是会没有来头的鄙视以前的自己,那么就存着这篇文章吧。 自称Cole,名字来源于最喜爱的rapper J.Cole 大学一年混来混去,在大一的尾巴才确定了想要在ACM上混出点成绩。可惜截止目前,仍然是集训队中最菜的一位,在自己的队伍中也只能写写暴力、搜索等没脑子的题。 热爱音乐,尤爱欧美音乐。博爱众rapper、众乐队、众多艺人。坚定的英伦乐队the xx粉丝。 点我进入last.fm主页 热爱运动,曾在高中篮球校队混过几年,砍下场均18次递水、10次递毛巾、6次场边尬舞的全能数据,长期占领场边翻比分牌的主力位置。 (其实首发了两年) 热爱到处乱逛,找好吃的, 可惜目前暂时没有女性同好一起完成此等大业 。 也曾彷徨失落,怀疑自己是否足够强大、足够聪明。 也曾悲观消极,痛惜没有人能真正懂得自己。 不过,既然选择了ACM,跪着也要走下去。 everything works out in the end. -----Kodaline 来源: CSDN 作者: VampireWeekend 链接: https://blog.csdn.net/sinat_35406909/article/details/77462104

杭电acm 1019 Least Common Multiple

那年仲夏 提交于 2019-12-29 07:47:48
  本题是求所给数的最小公倍数,方法:先求gcm,再求lcm,基本方法和平常相同,不同的是处理数据。第一次输入要存储起来作为前者,以后的每次输入都要和“前者”求一次lcm,作为下一次的前者,一直这样,最终求出lcm #include<iostream> using namespace std; int getg(int a,int b);//get gcm int getl(int a,int b);//get lcm int main() { int t,n,m,s; cin>>t; while(t--) { cin>>n; for(int i=0;i<n;++i) { cin>>m; if(i==0) s=m;//第一次先用一个变量储存下来 else s=getl(s,m); } cout<<s<<endl; } return 0; } int getg(int a,int b) { int r; if(a<b) { r=a; a=b; b=r; } while(b) { r=a%b; a=b; b=r; } return a; } int getl(int a,int b) { return a/getg(a,b)*b;//这个相当重要,不用a*b/getg(a,b)防止超出int型 } 来源: https://www.cnblogs.com/sanyeshun

acm代码小技巧总结

て烟熏妆下的殇ゞ 提交于 2019-12-26 01:08:52
acm代码小技巧总结: 1.RMQ:(Range Minimum/Maximum Query),即区间最值查询,这是一种在线算法,所谓在线算法,是指用户每次输入一个查询,便马上处理一个查询。 设二维数组dp[i][j]表示从第i位开始连续2^j个数中的最小值。例如dp[2][1]就表示从第二位数开始连续两个数的最小值(也就是从第二位数到第三位数的最小值) 初始化(复杂度O(nlogn)): void rmq_init() { for(int i=1;i<=N;i++) dp[i][0]=arr[i];//初始化 for(int j=1;(1<<j)<=N;j++) for(int i=1;i+(1<<j)-1<=N;i++) dp[i][j]=min(dp[i][j-1],dp[i+(1<<j-1)][j-1]); } (dp[i][0]就表示第i个数字本身) 查询代码(复杂度O(1)): int rmq(int l,int r) { int k=log2(r-l+1); return min(dp[l][k],dp[r-(1<<k)+1][k]); } 2.XK int pw(int x,int k){ int ret=1; while(k){ if(k&1) ret=(ll)ret x%mod; x=(ll)x x%mod; k>>=1; } return ret; } 来源:

山东省第八届ACM大学生程序设计竞赛

我怕爱的太早我们不能终老 提交于 2019-12-23 05:19:45
C 暂时还不对 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 5 using namespace std; 6 7 #define MOD 1000000007 8 typedef long long ll; 9 10 int jie[100010]; 11 12 void jiecheng1(){ 13 ll jiech=1; 14 for(ll i=1;i<=100010;i++){ 15 jiech*=i; 16 jiech%=MOD; 17 jie[i]=jiech; 18 } 19 } 20 21 22 ll jiecheng(ll aa){ 23 return jie[aa]; 24 25 } 26 27 ll cal(int T,int Y){ 28 if(T%2==1||Y%2==1){ 29 return 0; 30 } 31 ll n,m; 32 n=T; 33 m=(T-Y)/2; 34 return (jiecheng(n)%MOD)/( ((jiecheng(m)%MOD)*(jiecheng(n-m)%MOD))%MOD ); 35 } 36 37 int distan(int a,int b){ 38 if(a>b){ 39 return a-b; 40 }else{ 41

《ACM国际大学生程序设计竞赛题解Ⅰ》——基础编程题

 ̄綄美尐妖づ 提交于 2019-12-22 15:18:44
这个专栏开始介绍一些《ACM国际大学生程序设计竞赛题解》上的竞赛题目,读者可以配合zju/poj/uva的在线测评系统提交代码(今天zoj貌似崩了)。 其实看书名也能看出来这本书的思路,就是一本题解书,简单暴力的通过题目的堆叠来提升解决编程问题的能力。 那么下面开始探索吧。 poj1037: Description Background For years, computer scientists have been trying to find efficient solutions to different computing problems. For some of them efficient algorithms are already available, these are the "easy" problems like sorting, evaluating a polynomial or finding the shortest path in a graph. For the "hard" ones only exponential-time algorithms are known. The traveling-salesman problem belongs to this latter group. Given a set of N towns and

R, issue with a Hierarchical clustering after a Multiple correspondence analysis

▼魔方 西西 提交于 2019-12-21 15:45:35
问题 I want to cluster a dataset (600000 observations), and for each cluster I want to get the principal components. My vectors are composed by one email and by 30 qualitative variables. Each quantitative variable has 4 classes: 0,1,2 and 3. So first thing I'm doing is to load the library FactoMineR and to load my data: library(FactoMineR) mydata = read.csv("/home/tom/Desktop/ACM/acm.csv") Then I'm setting my variables as qualitative (I'm excluding the variable 'email' though): for(n in 1:length