acm

ACM卡常数(各种玄学优化)

旧街凉风 提交于 2020-02-26 21:33:09
首先声明,本博文部分内容仅仅适用于ACM竞赛,并不适用于NOIP与OI竞赛,违规使用可能会遭竞赛处理,请慎重使用!遭遇任何情况都与本人无关哈=7= 我也不想搞得那么严肃的,但真的有些函数在NOIP与OI竞赛中有相关规定不能使用,详细我也不知道各位要了解请自行去找比赛要求咯,当然在ACM竞赛中,没有限制函数,所以所有内容都适用于ACM竞赛。 那么什么是卡常数呢,简单来说就是你和某神犇算法思路一样,结果他的AC了,你的TLE,复杂来说就是程序被卡常数,一般指程序虽然渐进复杂度可以接受,但是由于实现/算法本身的时间常数因子较大,使得无法在OI/ACM等算法竞赛规定的时限内运行结束。 下面就是介绍各种各样的非(花)常(里)实(胡)用(哨)的优化方法的,若本文某些地方有错误或不明确的地方还请指出。=7= 优化I/O 网上有很多说关于cin和scanf的介绍,以及关闭流输入等等优化方法,但这些都还是有可能成为卡常数的地方,那么这个时候,我们就可以自己写输出输出函数了。 下面一个简单的对读入数字的优化: 1 inline void read(int &sum) { 2 char ch = getchar(); 3 int tf = 0; 4 sum = 0; 5 while((ch < '0' || ch > '9') && (ch != '-')) ch = getchar(); 6 tf =

ACM International Collegiate Programming Contest (2018)A~F

梦想与她 提交于 2020-02-17 01:57:58
ACM International Collegiate Programming Contest (2018)A~F 文章目录 ACM International Collegiate Programming Contest (2018)A~F A. Careful Thief B. Friends and Cookies C. Flip the Bits D. Magic Sticks E.N-Dimensional Grid F. Minimum Sum of Array A. Careful Thief 给出n个l,r,v表示在l到r范围内的每一个点价值为v 你可以得到连续的一段区间的总价值,区间最长为k,求可以得到的最大值。 对于这个问题,答案只在两种情况下产生: 1,起始位置为各个区间的左端点,结束位置为起始+长度-1; 2,结束位置为各个区间的右端点,起始位置为结束-长度+1; 对于1只需要每次枚举左端点,算出右端点,把中间的加起来就好了,然后维护最大值。 对于2也类似。 #include<bits/stdc++.h> using namespace std; typedef long long LL; inline long long read() { long long kk=0,f=1; char cc=getchar(); while(cc<'0'||cc>'9

【转】acm学习方法

混江龙づ霸主 提交于 2020-02-16 11:35:11
建议 做到50行以内的程序不用调试、100行以内的二分钟内调试成功. acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。 算法集锦 https://www.cnblogs.com/ngyifeng/p/3718601.html 书籍推荐 入门三本: 《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材) 程序设计导引及在线实践 作者: 李文新 ACM程序设计培训教程 吴昊 基础提高: 算法设计与分析 这是国内牛人王晓东的大作,非常不错的算法书 算法设计与试验题解 王晓东 计算几何-算法设计与分析 周培德 组合数学 第三版 冯舜玺 译 算法艺术与信息学竞赛 刘汝佳的杰作,引导着信息学竞赛的发展 如果算法导论是九阳神功,那这本无疑就是九阴真经。本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。 国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计  吴文虎 王建德 Introduction to Algorithm 科曼著 传说中的宝典 算法导论(原书第3版) Algorithms 算法概论 短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中

acm数据制造

99封情书 提交于 2020-02-10 17:13:20
多组数据比较好构造的 我们可以写一个输入的构造器,我们这里用 TZOJ2624: 避雨 举例 我们可以先写好如下标程 #include <string.h> #include <stdio.h> char str[15][15]; int main() { int t, n, m, i, j, sX, sY; int min, ansX, ansY, tmp; scanf("%d", &t); while (t--) { scanf("%d%d", &m, &n); for (i = 0; i < m; i++) { scanf("%s", str[i]); for (j = 0; j < n; j++) if (str[i][j] == 's') { sX = i; sY = j; } } min = 100000; for (i = 0; i < m; i++) for (j = 0; j < n; j++) { if (str[i][j] == 'd') { tmp = (i - sX)*(i - sX) + (j - sY)*(j - sY); if (min > tmp) { min = tmp; ansX = i; ansY = j; } } } printf("(%d,%d)\n", ansX, ansY); } return 0; } View Code

2020牛客寒假算法基础集训营3 E题牛牛的随机数

你。 提交于 2020-02-09 10:43:52
链接: https://ac.nowcoder.com/acm/contest/3004/E 来源:牛客网 牛牛和牛可乐是一对好朋友,现在牛牛从值域[l1,r1]中随机给出一个数字a,牛可乐从值域[l2,r2]中随机给出一个数字b。问你a ⊕ b的数学期望。其中 ⊕ 为位运算符,表示按位取异或。 题意:....... 题解:直说这题不会,粘一个官方题解 如果不知道数位DP: https://blog.nowcoder.net/n/ec605c08900140019698e33059b20873 题解的意思时,求转成二进制后针对每一位可以生成多少个1 ,你问我怎末求这个0,1的个数 位运算,硬算 代码:solution: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=42886442 solution: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=42886420 来源: https://www.cnblogs.com/RE-TLE/p/12286326.html

POJ 3436 ACM Computer Factory (网络流,最大流)

橙三吉。 提交于 2020-02-05 07:34:32
POJ 3436 ACM Computer Factory (网络流,最大流) Description As you know, all the computers used for ACM contests must be identical, so the participants compete on equal terms. That is why all these computers are historically produced at the same factory. Every ACM computer consists of P parts. When all these parts are present, the computer is ready and can be shipped to one of the numerous ACM contests. Computer manufacturing is fully automated by using N various machines. Each machine removes some parts from a half-finished computer and adds some new parts (removing of parts is sometimes necessary as

计算机会议排名:Computer Science Conference Rankings 转帖

时光总嘲笑我的痴心妄想 提交于 2020-02-04 20:09:09
Note: I will NOT update this general list any more in the future. Instead, I'm maintaining a list of computer security conference ranking and statistic . As we all know, conference is more important than journal in computer science area. This is the reason why you see this ranking. This ranking is collected from Internet, only for reference, maybe not accurate, not complete and no copyright. (The original NUS 1999 report on CS conference rankings ) Some conferences accept multiple categories of papers. The rankings below are for the most prestigious category of paper at a given conference. All

POJ 2379 ACM Rank Table 排序, map

时光总嘲笑我的痴心妄想 提交于 2020-02-04 01:53:07
题目意思: 利用的就是acm的竞赛排名规则。大意是队伍参见比赛,然后让我们计算排名,第一关键词是过题数,过题数越多的队伍排名越高,排名相同的队伍看第二关键词时间,时间越短的队伍排名越高。 每道题目提交失败还会罚时,但是要注意的是若不通过题目,是不计算罚时的。 /* 本题要点: 1、 每道题都有第一次AC 的时间(秒做单位), 假设为 t1 = 3000, 这道题之前会可能错了很多次, 每错一次, 罚时 1200 秒。假如错三次 罚时 t2 = 1200 * 3; 每道题所花的时间为 t1 + t2 = 3000 + 3600 = 6600 ; 每个队伍,一共 AC 了几道题,算上这些题的所有时间,得到总时间 2、 队伍AC后可能还提交,无论对还是错,时间都是不算的 3、 数据输入的顺序是不一定的,也就是说两次AC,但是后面AC时间是最靠前的,这时后来提交的AC时间要忽略 4、 最后排序是AC->Time->id来排序的 */ # include <cstdio> # include <cstring> # include <iostream> # include <algorithm> # include <map> using namespace std ; typedef pair < int , int > PII ; // 记录 <团队编号, 题目编号> map < PII

ACM 中常用的算法有哪些?

て烟熏妆下的殇ゞ 提交于 2020-01-30 22:22:13
在网上看到别人ACM学习的心得,转载过来,源地址不记得了,当时是百度的。内容如下: 网络上流传的答案有很多,估计提问者也曾经去网上搜过。所以根据自己微薄的经验提点看法。 我ACM初期是训练编码能力,以水题为主(就是没有任何算法,自己靠动脑筋能够实现的),这种题目特点是麻烦,但是不难,30-50道题目就可以了。 然后可以接触一下基础的算法,我感觉搜索方向的比较不错,可以解决很多问题,深搜,广搜,然后各种剪枝能力的锻炼。 搜索感觉不错了就可以去看看贪心,图论,和动态规划方向的了。图论有最短路径,最小生成树,网络流,拓扑排序等等很多,动态规划先去书上看经典例子,最长公共子序列等。各种变形的题目。 数学是ACM中极具杀伤力的武器,我一向很羡慕数学好的队友,精力有限自己数学方面的算法只能说入门。这方面经典的数论,组合数学方面的比较多,计算几何是很重要的,经典模型要熟悉,最近点对,二维三维,凸包以及各种应用。 数据结构方面的就比较多了,基础的堆,栈,队列,并查集,二叉查找树,红黑树,trie树,hash表等等。 用C++参赛的话STL要熟悉,有时候很有帮助,里面的queue,list,map,stack等。 ACM到后来算法就成了工具,不断的靠自己意淫一个新的解法来解决问题是最开心的事情了。我们学校ACM一直是一届带一届的,老师只提供经济上的援助

武小胖博士修炼记之理论篇

旧时模样 提交于 2020-01-30 03:57:33
一、 顶级会议 Network - ACM SIGCOMM - ACM MOBICOM - USENIX NSDI - ACM CoNEXT - ACM MobiSys System - ACM OSDI/SOSP - USENIX ATC - ACM EuroSys Multimedia - ACM MM - ACM MMSys 二、写作 1. 缩短句子,不要用很多逗号连接长句; 2.写一句,自己看一遍,换位思考; 3. 不要引用作者的原句,要自己概括; 4. 审视自己的ATC文章,分析写作方面的问题; 5.重视学术规范,各科研环节和日常点滴都要注意培养自己的严谨性、专业性,避免随意性、避免想当然 来源: CSDN 作者: cleanarea 链接: https://blog.csdn.net/cleanarea/article/details/89395638