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 ...
随机推荐
- Notes中几个处理多值域的通用函数
1.查找出查找内容在多值域中的索引值 getItemIndex(域名,域值,文档) Public Function getItemIndex(ByVal fieldName As String, By ...
- void java.lang.System.gc()
void java.lang.System.gc() Runs the garbage collector. Calling the gc method suggests that the Java ...
- Nginx配置静态资源
静态服务器 静态服务器概念非常简单:当用户请求静态资源时,把文件内容回复给用户. 但是,要把静态服务做到极致,需要考虑的方面非常多: 正确书写header:设置content-type.过期时间等 效 ...
- IntelliJ IDEA for Mac(Java 语言开发的集成环境)破解版安装
1.软件简介 IntelliJ IDEA 是 macOS 系统上一款 java 语言开发的集成环境,IntelliJ 在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手.代码自动提 ...
- 关于c语言的左移运算
对于任意w位的二进制,进行k位的移动时,真实的位移量为k mod w 32bit的例子 1 << 1 结果2 1 mod 32 => 11 << 32 结果1 32 mo ...
- Egret里用矢量挖圆形的洞
项目里需要用到,但是不是用在新手引导上,下面的代码可以绘制一个圆的四分之一,用四个即可拼出一个圆. private createShape(): egret.Shape { let magicNum ...
- FFmpeg: AVPacket 结构体分析
AVPacket是FFmpeg中很重要的一个数据结构,它保存了解封装之后,解码之前的数据(注意:仍然是压缩后的数据)和关于这些数据的一些附加信息,如显示时间戳(pts).解码时间戳(dts).数据时长 ...
- Linux判断文件是否为空,不为空则打印该文件的大小
Linux判断文件是否为空,不为空则打印该文件的大小,使用到的命令是-s + filename -s filename 如果文件大小大于0,则返回true. 例如: 查看当前目录 # ls -l to ...
- Spring-boot初始化创建(一)
Spring Boot 是什么 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...
- Java多线程系列——信号量:Semaphore
简介 信号量为多线程协作提供了更为强大的控制方法.也可以说,信号量是对锁的扩展.无论是内部锁 synchronized 还是重入锁 ReentrantLock,一次都只允许一个线程访问一个资源,而信号 ...