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 ...
随机推荐
- Android数据库大批量数据插入优化
对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 public static boolean insert(SQLiteOpenHelper op ...
- SoapUI Pro Project Solution Collection –Easy develop Groovy Script to improve SoapUI ability
As you know the groovy script and java script language is the soapui supported .but unfortunately So ...
- 【Android】详解Android 网络操作
目录结构: contents structure [+] 判断网络 判断是否有网络连接 判断WIFI网络是否可用 判断MOBILE网络是否可用 获取当前网络连接的类型信息 监听网络 获取网络信息需要在 ...
- 在 Swift 中调用 OC 代码
前言 在 Swift 语言中,我们可以使用 Objective-C.C 语言编写代码,我们可以导入任意用 Objective-C 写的 Cocoa 平台框架.Objective-C 框架或 C 类库. ...
- SpringCloud服务间调用
SpringCloud服务间的调用有两种方式:RestTemplate和FeignClient.不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过jackson序列化 ...
- MySQL 5.6新特性 -- crash-safe replication
在slave上有两个线程:io线程和sql线程io线程接收master的二进制日志信息并写入到本地的relay log中:sql线程执行本地relay log中的信息.io线程读取到的二进制日志当前位 ...
- [k8s]k8s配置nfs做后端存储&配置多nginx共享存储&&statefulset配置
所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.1 ...
- ThreadPoolExecutor 线程池浅析
作为Executor框架中最核心的类,ThreadPoolExecutor代表着鼎鼎大名的线程池,它给了我们足够的理由来弄清楚它. 下面我们就通过源码来一步一步弄清楚它. 内部状态 线程有五种状态:新 ...
- 【转】Ubuntu FireFox无法播放网页视频音乐的解决办法
原文:http://www.codeweblog.com/%E8%A7%A3%E5%86%B3qq%E9%9F%B3%E4%B9%90%E7%BD%91%E9%A1%B5%E7%89%88%E5%9C ...
- 【Java】forward & redirect 的差异
1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地 ...