acm

ACMer博客瀑布流分析

陌路散爱 提交于 2019-12-05 23:16:46
ACMer博客瀑布流是一个专门收集ACMer博客并展示的站点。地址 http://blog.acmicpc.info/ 打开网页之后直接查看源代码发现 function entry2html(entry) { var html = ''; html += '<div class="box" id="entry-' + entry.rss_entry_id + '">'; html += '<div class="entry-title">'; html += '<a onclick="click_entry(' + entry.rss_entry_id + ')" href="' + entry.link + '" target="_blank">' + entry.title + '</a>'; html += '</div>'; html += '<div class="entry-time">'; html += entry.crawled; html += '</div>'; html += '<div class="entry-author">'; html += '<a href="' + entry.author_link + '" target="_blank"> '; html += entry.author_name; html += '</a>'; html

【ACM】PAT. A1102 Invert a Binary Tree 【二叉树】

末鹿安然 提交于 2019-12-05 06:50:42
题目链接 题目分析 输入顺序即为结点下标,输入内容为结点的左右子树下标 解题思路 1、保存输入结点信息 2、找到根结点(开一个 bool 数组,看哪个结点没有作为子节点出现) 3、构造出二叉树 4、不用再 invert ,遍历时反转顺序即可! 后记: 其实不用建树,结点保存在数组中,就相当于静态存储,直接可以遍历! AC程序(C++) /************************** *@Author: 3stone *@ACM: PAT.A1102 Invert a Binary Tree *@Time: 18/7/26 *@IDE: VSCode 2018 + clang ***************************/ # include <cstdio> # include <queue> # include <cstring> using namespace std ; struct tree_key { int lkey , rkey ; } key [ 20 ] ; struct Node { Node * lchild ; Node * rchild ; int data ; } ; //构造二叉树 Node * create ( int k ) { //递归基 无左右子树 if ( k == - 1 ) return NULL ; Node *

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

血红的双手。 提交于 2019-12-04 08:19:12
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(mydata)){mydata[[n]] <- factor(mydata[[n]])} I'm removing the emails from my vectors: mydata2 = mydata[2

acm刷题

℡╲_俬逩灬. 提交于 2019-12-03 23:17:48
1.STL栈   hdu 1237 ‘简单计算器’ 2.STL 优先队列 priority_queue   hdu 1873 看病要排队 #include<iostream> #include<queue> //加这个文件是因为杭电的oj不行 #include<string> using namespace std; struct Node{ int n, p; bool operator < (const Node &t) const { if (p == t.p) return n > t.n; return p < t.p; } }node; int main() { int n, id, doc; string temp; //没有输入scanf返回-1 while (~scanf("%d", &n)) { id = 0; priority_queue<Node> q[3]; while (n--) { cin>>temp; if (temp == "IN") { scanf("%d%d", &doc, &node.p); node.n = ++id; q[doc - 1].push(node); }else { scanf("%d", &doc); if (q[doc - 1].empty()) cout << "EMPTY" << endl; else { node =

ACM赛后总结(湘潭邀请赛,怀化交流赛)

半世苍凉 提交于 2019-12-03 18:44:08
转眼ACM也搞了这么久了,怎么说呢!虽然说是断断续续的搞得,但是还是有点累啊,不过还是值得的,我感觉我成长了。从初入大学的迷茫,转变到现在有点事情做了,也还算不错。 湘潭怀化的赛事,算上来是第一次正式的对外赛事,尽管我还年轻,但也深刻感觉到了实力不足。 在湘潭邀请赛中,来自省内外的各个强队让我感到很有压力,尽管跟着我们队长混了个银奖,但是总觉得,这还不属于我,在整个三人队中,贡献几乎没多少,也深可感受到了自己的弱小,也强烈的渴望变强。在比赛中更有体会,几乎做题都是被牵着鼻子走的,强队A了那个题我们就跟着去A那个,毫无自己的优势可言,或许我也应该努力强大到自己来带领这个节奏。不过这次的全英文题倒把我给吓住了,想想弱菜我还是个英语渣,表示深感无力啊,得好好搞英语了啊,当然我也有计划了,就是狂刷CF(codeforces),相信不久的将来我也能多多少少不通过字典看懂几个英语题吧。 在怀化交流赛中,尽管他们学校不是很叼,但是老话一句:没有不叼的人,主要看付出。他们学校每月一百多题的狂人还是把我给怔住了,感觉自己付出还是少了点,也不是太认真,是该努力努力。在赛事中,尽管题目不难,但是也是我遇到的最坑的一场比赛了,各种坑人的题(有木有!!),连跪抹杀了我很大部分的信心,从中也深刻感应到了自己的心理素质不过硬啊!更是可笑的无限跪在自己一开始就认为是最简单的题上,深感不该,为自己的粗心轻题感到可笑

吉首大学怀化学院acm交流赛总结——无限被虐

你离开我真会死。 提交于 2019-12-03 18:38:05
吉首大学怀化学院 acm 交流赛总结——无限被虐 接触这东西大概快一年了吧(前半年基本打酱油 ..... 这个学期开始才开始系统的学了点东西)。不说对 acm 有很深的感情 但毕竟还是有那么一点特别的情愫的不知不觉也慢慢的习惯了每天刷刷题的习惯(虽然基本上是水题 ........... )。能进入集训队是件意料之外的事。本来一个多学期的酱油打下来基本上没什么 A 题能力,却意外的入选了。不过竟然选上了那么就抱着多学点东西对专业有好处的想法跟着一群疯子(经常熬到半夜刷 cf......... 虽然一直掉分但这种精神是值得膜拜的 ... 好像某位大神说的我做不了天才 但我可以做疯子)玩起了 acm 。 这次交流赛是我第一次参加多个学校之间的比赛。不得不说被虐的很惨 .......5 个小时的比赛才 A 两道(赛后重新看了一遍估计能 A 五道 ............. )还是只有两个英文题。这一大瓶酱油打的心寒啊。赛前 老湿说过要细心去看每一道题甚至每一个字,这些都决定你 A 题的速度与成败。但是 貌似粗心是我与生俱来的吧,从小到大没少犯过各种低级错误。这次比赛这不又犯了 ..... 按照惯例比赛开始,先浏览一下所有题看那个好下手。一看之下还真有一个以前做过的水题。自信满满的点进去分分钟把代码敲完提交 .....BUT 弹出一个 WA ,一看顿时傻眼 又检查了几遍修改了一下再提交还是

BJFU ACM协会暑期实践心得

大兔子大兔子 提交于 2019-12-03 09:58:05
ACM协会暑期实践心得 181002222 ACM爱好者协会成立于2010年12月,在历届前辈的努力之下,协会发展迅速,队伍逐渐壮大,现有成员80余名,由徐艳艳老师担任指导老师。 协会以参加ACM大赛为目的,集聚广大ACM爱好者,为广大热衷于ACM的同学提供了很好的平台,定期组织培训和练习赛以及假期集训。协会还会组织同学参加各高校和各公司举办的大小程序设计竞赛。ACM竞赛对学生的锻炼价值极大,在这里走出了一批又一批保研北大、北邮、中科院的优秀学长学姐,另外获奖的ACM队员均进入了一流IT企业。在这个圈子里会接触到校内,北京高校,全国乃至全世界一流的编程高手。北林ACM协会拥有独立的实验室,良好的学习氛围,在这里,可以跟周围的大牛一起学习、进步、玩耍,让我的大学暑假生活充实快乐又有价值。 此次实践将参与人员分为讲师辅导团与算法学习团两个部分。讲师辅导团负责制定算法学习团成员的暑期学习计划以及对学习团成员进行算法培训。培训分为三个部分,分别是上午的算法知识讲解、下午的真题训练及晚上的复习答疑。与此同时讲师辅导团会在下午进行团队赛的算法真题进阶训练。学习团成员也有相应的团队赛,模拟真实团队赛场景,提高团队合作意识、表达沟通能力、科研创新能力等。学习团将在为期一个月的实践中习得讲师团准备的数论、图论、数据结构、动态规划等高级算法知识。一周一次的测试及实测将作为学习团成员实践的评价准则。

ACM 逆序对(逆序数)总结

匿名 (未验证) 提交于 2019-12-03 00:43:02
最近做题遇到几次逆序数了,今天总结一下,以后遇到了再也不怕了。 首先说明一下什么是逆序数,下面是百度的 定义 : 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个 逆序 。一个排列中逆序的总数就称为这个排列的 逆序数 。 如2431中,21,43,41,31是逆序,逆序数是4。 ①如何求逆序数 方法如下: 考察每一位,判断从这一位往后有多少小于该位的,结果累加,得到最后结果。 至于为什么,我也不知道,反正我感觉挺好理解的。 ②如何用算法实现 当然,对于上述简单的过程,我们可以用两个for循环直接暴力,但是,这种方法一般都太low了,复杂度太高。 高效的方法有 : 归并排序、线段树、树状数组。 个人建议使用线段树求解,因为线段树在很多地方都有应用。 对于归并排序和树状数组,我就不解释了,因为归并排序一搞就忘记了而且用处不大,想了解的这里给出一篇博客 https://blog.csdn.net/acm_jl/article/details/51147010 例题是 HDU 1394,然后做完这个可以再写一下POJ 2299 HDU 1394的解析如下 https://www.cnblogs.com/qlky/p/5693747.html 然后我写的是POJ 2299 下面开始解析,当然,大家一定要有一定线段树的基础 算法的思想还是最基础的思想

Poj百练(分类刷题) 2808 校门外的树

匿名 (未验证) 提交于 2019-12-03 00:36:02
仍然是acm的基础题。。简单的数组运算,状态模拟 但是伟大往往不都是从菜鸟开始的么哈哈。。 本人菜鸟一枚,决心入了acm的坑,目前双非普一大一,给自己立个flag吧,2018年,蓝桥杯国赛,校acm拿奖! 每周更新poj5-8题,欢迎监督,题是我分好类来刷的,有兴趣的同学可以和我一起。欢迎交流~ 这道题的注意都写在注释里了咯 #include<cstdio> #include<iostream> #include<string.h> using namespace std; int L, M; int main(){ scanf("%d%d", &L, &M); //用一个Bit来表示一个区域节省空间,1表示有树,同时记得略微扩大数组以防止越界 char pos[L+10]; memset(pos, 1, sizeof(pos)); int a, b; for(int i = 0; i < M; i++){ scanf("%d%d",&a,&b); //这里采用位运算增强计算效率 for(int i = a; i <= b; i++){ //printf("%c",pos[i]); pos[i] &= 0; } } int count = 0; //尤其要注意这个地方,注意考虑从0开始到L的两端点情况 for(int i = 0; i <= L; i++){ if(pos[i])

杭电acm 1002

匿名 (未验证) 提交于 2019-12-03 00:32:02
注:题目请查看杭电ACM网站 不知道杭电acm编译通过的标准是什么,所以本题贴多种形式的代码。 由于数值大小问题,不能使用int类型,所以用String类型,也不用long 编译通过的: import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main (String []args) { Scanner sc = new Scanner(System. in ); int col = sc.nextInt(); if ( 1 <= col && col <= 20 ) { int row = 2 ; String[][] jihe = new String[col][row]; String value1 = null ; String value2 = null ; for ( int i = 0 ; i < col; i++) { value1 = sc.next(); value2 = sc.next(); if (i!=(col- 1 )) { System. out .println( "Case" + " " + (i+ 1 )+ ":\r\n" +value1+ " + " +value2+ " = " + new BigDecimal