acm入门练习心得
A题 两数相加等于n相乘等于m 问是否存在两数
写了超级久没有写出来,因为我的思路是 把m的因子都找出来,加加看,看等不等于n。后来发现m的因子还要考虑负数的情况,还要考虑m是不是负数的情况。太过麻烦,显然出错了。
实际上,可以用较为简单的方法,来解这个二元方程有没有整数解即可。最后只需要判断一个一元二次方程有没有整数解即可。
判断这个解是不是整数的方法可以是: if((y-(int)y)==0)
D题 找到只出现奇数次的数
这是在新学了STL以后写的,之前考虑的算法是用二重循环,但是显然会超时。于是想到了用STL里的sort函数。建立了一个数组存储了所有的数据以后,使用sort函数,然后循环判断这个数和之后的数是否相等,由此计算这个数的个数,找到奇数的情况就输出。特殊情况是数组的最后一个,所以先判断是否已经到了最后一个。
一次性A了很开心
这道题和校赛的毒姐的情侣装很类似,当时也没写出来,应该还可以用异或来判断。之后可以再考虑怎么写。
E题 只取一个数的后两位做加法运算
挺简单的一题,就用%=就可以了
F题 一个数十进制的各位之和等于十六进制的各位之和等于十二进制的各位之和
用一个temp来存储这个数,对这个数%10/10直到他不等于0(十六十二进制同理)求得这三个进制各位数相加之和
G题 找到把一个10000以内的偶数拆分成两个不同的素数的不同拆分方法的次数
想到每次判断小于这个偶数的素数,但是显然太麻烦了,考虑到偶数在10000以内,就百度了10000以内的素数表,存在了数组里。
循环判断是否有两个相加等于这个偶数
本来的写法是
for(j=0;j<1229&&j!=i;j++)
{
if (other ==prime[j]&&j!=i)
cnt++;
}
}
printf("%d\n",cnt);
原意是想把j从0到1228都判断一下,然后排除等于i的情况,在把cnt/2输出
但是发现这样想第一个问题是j判断到i就结束了
经zcx提醒,发现其实确实只用判断到i就可以了,这样的话cnt也不用/2
H题 一个整数不知道最后两位数,知道它可以被某数除尽,算这个数最后两位可能是什么
前面的结果算出来挺容易的,难的是题目的要求是,每个数之后有一个空格最后一个数之后没有空格,这个问题其实挺常见的之前有一题也是这个原因
这样的话就不能直接循环的时候加入空格了
方法是:用一个flag先定为0,输出第一个数之后改为1,之后每次输出数字之前加一个空格。
还有一个要注意的问题是当这个数小于10时前面要用0补足
I题 算出第n各斐波那契数
本来想用一个函数做递归,但是超时了。改成循环以后就不会超时了。
因为之后数字变得很大,所以要用到longlong。
J题 找到最高的人
很简单,就找最大值就好了。
N题 a能否被b整除
很简单,略。
R题 计算坐标上两个点与原点相连的夹角大小
用向量中计算cos的做法,算出cos。再用acos()函数算出角度,因为acos()函数返回值是弧度制,所以要*180/3.1415826
错误出现在,这两个点的坐标是实数
S题 输入11位手机号,以6+最后五位作为短号
定义了一个数组,存储这11位数字
然后输出6,再从i=6开始循环输出剩下的数
感想:感觉自己有的时候写题目非常糙,都是没考虑清楚细节乱来。经常不够耐心,都还没有调试就随便提交代码。
师阳大神实在是很厉害,他都是哪里来的这么多时间A题的
在俱乐部的一周,觉得自己腰酸背痛,特别困特别累饿的特别快。感觉脑子都不太好用了,非常担心自己头发要掉光了,所以赶紧买了点坚果补一下...
acm入门练习心得的更多相关文章
- ACM入门步骤(一)
一般的入门顺序: 0. C语言的基本语法(或者直接开C++也行,当一个java选手可能会更受欢迎,并且以后工作好找,但是难度有点大),[参考书籍:刘汝佳的<算法竞赛入门经典>,C++入门可 ...
- zstu.4194: 字符串匹配(kmp入门题&& 心得)
4194: 字符串匹配 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 206 Solved: 78 Description 给你两个字符串A,B,请 ...
- 一位ACM过来人的心得(转)
励志下! 刻苦的训练我打算最后稍微提一下.主要说后者:什么是有效地训练? 我想说下我的理解.很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了.其实,这既不是充分条件.也不会是必要条 ...
- 大牛对ACM入门菜鸟的一些话
首先就是我为什么要写这么一篇日志.原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入门.其实就现在而言,我并不是很想和人再去讨论这样的话题,特别是当我发现我有很多的东西要学的时候,我实 ...
- 一位ACM过来人的心得
刻苦的训练我打算最后稍微提一下.主要说后者:什么是有效地训练? 我想说下我的理解. 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了.其实,这既不是充分条件.也不会是必要条件. 我 ...
- 一个acm过来人的心得
刻苦的训练我打算最后稍微提一下.主要说后者:什么是有效地训练? 我想说下我的理解. 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了.其实,这既不是充分条件.也不会是 ...
- ACM入门指南
本文已经转移到了:http://harryguo.me/2015/11/03/ACM-%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/ 什么是ACM? 想必打开这篇博客的人已 ...
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- ACM 入门计划
acm 本文由swellspirit贡献 ACM • I can accept failure. but I can't accept not trying. Life is often compar ...
随机推荐
- 【C#】C#对Excel表的操作
目录结构: contents structure [+] Microsoft.Office.Interop.Excel.Application Aspose.cell插件 1.Microsoft.Of ...
- docker镜像、容器以及命令操作
docker image docker image是一个极度精简版的Linux程序运行环境,官网的java镜像包括的东西更少,除非是镜像叠加方式的如centos+java7 docker image是 ...
- Socketserver 笔记
引入Socketserver的背景: 我们之前使用socket编程的时候,Server端创建一个连接循环(建立连接)+一个通信循环(基于一次连接建立通信循环),(这里的黏包问题我们的实现方式是:我们在 ...
- CentOS7安装chrony替代ntp同步时间
Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确.它由两个程序组成:chronyd和chronyc:chronyd是一个后台运行的守护进程,用于调整内核中运 ...
- 《转》推荐几个精致的web UI框架
1.Aliceui Aliceui是支付宝的样式解决方案,是一套精选的基于 spm 生态圈的样式模块集合,是 Arale 的子集,也是一套模块化的样式命名和组织规范,是写 CSS 的更好方式. git ...
- mxnet:基础知识和一个简单的示例
NDArray与NumPy的多维数组类似,但NDArray提供了更多的功能:GPU和CPU的异步计算:自动求导.这使得NDArray能更好地支持机器学习. 初始化 from mxnet import ...
- BitSet的用法
1,BitSet类 大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志. 此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的整数 ...
- 要是VISUAL STUDIO 2015带这些功能就好了
visual studio 2015 正式版立即就要出来了,事实上我原来满期待微软能出一套完美的移植的ANDROID和IOS应用的技术方案,这样WIN10正式版出来后,有一套比較好的移植框架,大家能够 ...
- [Angularjs] 第一步开始一个项目
[Angularjs] 第一步开始一个项目 一.什么是angularjs angularjs是2009年兴起的,目前由Google维护一个采用mvc模式的js框架,很多时候用来创建单页面应用.我也经常 ...
- Sass的安装(windows 10)
1.下载ruby 下载地址:https://rubyinstaller.org/downloads/ 如果觉得下载速度过慢,可以在我的百度去下载: 链接:https://pan.baidu.com/s ...