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 ...
随机推荐
- PL/SQL学习笔记之条件控制语句
一:IF-THEN语句 IF (condition) THEN commands; END IF; 二:IF-THEN_ELSE语句 IF (condition) THEN S1; ELSE S2; ...
- IntelliJ IDEA 2017.3/2018.1激活与汉化
本文以IntelliJ IDEA 2017.3以及2018.1为例进行讲解.(持续更新:2018年5月28日) 适用版本(其它版本未测试): IntelliJ IDEA 2017.2.6.2017.3 ...
- excel表格 xls、xlsx 读取
public static void main(String[] args) throws Exception { // getdslContext(); String file = "F: ...
- Effective Java 第三版——51. 仔细设计方法签名
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- [svc]linux下网桥-docker网桥
网桥和交换机 2口交换机=网桥 交换机: 工作在数据链路层,根据源mac学习(控制层),目的mac转发(数据层). linux的网卡 vmware workstation中的桥接 参考: http:/ ...
- Asp.Net T4模板生成三层架构
1.T4 Editor安装 T4:根据模板生成文件,例如model等 vs中默认t4模板编码是没有提示和高亮的,需使用以下插件,免费的 https://t4-editor.tangible-engin ...
- 《软件测试自动化之道》读书笔记 之 SQL 存储过程测试
<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序 创建测试用例以及测试结果存储 执行T-SQL脚本 使用BCP工具导入测试用例数据 ...
- vue.js是什么
Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习, ...
- 解决pymongo里操作IOSDate类型的问题
pymongo是Python对MongoDB的操作库.但是由于python没有IOSDate类型,所以对Mongo的时间类型是个很麻烦的操作.整理一个把python能识别的date类型转化为IOSDa ...
- 第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1
第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1 1.检查系统是否安装了python [root@192 ~]# rpm -qa ...