SJTU

很多题不告诉输入的数量和数据的规模

2009

题目链接:http://www.cskaoyan.com/forum.php?mod=viewthread&tid=12508&extra=page%3D2%26filter%3Ddigest%26digest%3D1

  1. 计算两天天数之差(模拟题)
  2. 算矩阵积分(没有题)
  3. 数组操作
  4. 大小字母出现次数

这一年大概是这么多年最简单的一次了。

2010

题目链接:http://blog.csdn.net/acm_jl/article/details/51106974

  1. 后缀子串排序string array[100]
len = str.length();
arr[i] = str.substr(len-i-1,len);
sort(arr,arr+len);//in algorithm
cout<<a[i]<<endl;
  1. 不带括号的四则运算,把所有结果当做加数存在数组里,不能把全部输入当做字符串处理,必须边输入边处理。
    计算所有乘除法,把结果依次保存在数组里,最后把数组剩下的数全部相加。
  2. 依次计算把每一点作为左上角定点的矩形满足条件的最小矩形面积。循环,不用DFS。
    没有ac,永远不懂九度的OJ。。

2010推免

题目链接:http://www.cskaoyan.com/forum.php?mod=viewthread&tid=24306&extra=page%3D2%26filter%3Ddigest%26digest%3D1

  1. 大数相乘(调代码调到吐)
  2. ???
  3. 只会暴力,从i=1...100000遍历,感觉和清华http://ac.jobdu.com/problem.php?pid=1491有点像。
  4. 插入排序
    计算最长非递减子序列,剩下的就是要插入的数了。(感觉是对的?)
  5. 内存分配
    为什么上交特喜欢这种考TLE的题……qwq

2012推免

题目链接:http://www.cskaoyan.com/forum.php?mod=viewthread&tid=161708&extra=page%3D2%26filter%3Ddigest%26digest%3D1

  1. 不能用三个数的平方和表示的数的格式为:(4^n)(8m+7),遍历n和m,注意剪枝(我也不知道有没有TLE)
  2. 马遍历棋盘,没有搜到。

2013

题目链接:

  1. 字典序排序一些二值对,输入形式(k,v)
int Comp(const void*p1,const void*p2)
{
    struct Node*c=(Node*)p1;
    struct Node*d=(Node*)p2;
    if(c->x!=d->x)
        return c->x-d->x;
    else return d->y-c->y;
}//结构体排序
qsort(node,length,sizeof(node[0]),cmp)
  1. 计算阶乘结尾的0的个数,找规律,求出N的阶乘的所有因式(1,2,3,...,N)分解中5的指数

  2. 用高精度整数保存十进制整数的小数部分,记为n,对n执行:1.将n自乘以16,保存n的最高位到结果数组ret[]里面;2.将n的最高位置为0;3.若n不为0或者以上操作已经执行了32次,则返回1,否则算法结束,最后只需要按照相应的格式打印结果即可

2014

题目链接:http://www.cskaoyan.com/thread-240783-1-3.html

  1. next_permutation
  2. 能否通过调整字符串的顺序使相同字符串间隔大于指定k。
    首先扫描整个输入,记录每一个字符串的后面和它相同的有多少个。
    若满足所有字符个数-1>=(出现最多次字符的次数-1)*指定k+出现最多次字符的个数-1,则可以。
    寻找从指定位置开始是否有**,a.find(" ", place) != string::npos
  3. 读取不知道规模的矩阵,用getchar()。只是从上到下扫描,不知道怎么简化??

2015考研

题目链接:http://www.cskaoyan.com/thread-247894-1-3.html

  1. 计算素数的个数(应该没啥简便方法……?)
  2. 利用后缀树得到字符串里最长重复子串:将所有后缀序列sort排序,最长的公共前缀就是想要的答案。复杂度O(n)
  3. 椭圆周长。没有可用的公式,要自己推导。

2015推免

题目链接:http://www.cskaoyan.com/thread-594266-1-2.html

  1. 求和的组合方式,DFS,用cnt[i]记录每一个数用了多少次。递归关键点:
for (i = pos;i<all; i++)//pos是寻找的起点
    {
        cnt[i]++;//cnt[i]记录第i个数用了几次
        DFS(tot + a[i], pos);
                pos++;//在下一次DFS时,前进一位开始找
                      //比如之前是11111现在是122222
        cnt[i]--;
    }
  1. 字符串的处理,输出除去输入中的'A','I','E','O','U'(即元音),且出现过的字母、下划线不再重复出现,且单词之间至多只能有一个空格。
  2. 求一个数由2的幂次组合相加的种类数。和第一题不一样,是找规律的题。不用递归,用数组存储。

2016

题目链接: http://www.cskaoyan.com/thread-595986-1-1.html

  1. 求第一个字符串的所有子串中包含第二个子串的个数。看清题意!
    三重循环,先截取不同长度的子串,然后从左向右依次strcmp。如果找到则停止。
  2. 包含括号、可以检查输入是否合法的计算器。设数字和操作符这两个栈,加减一个优先级,乘除一个优先级。考虑读取小数的情况。操作符优先级高的进栈,否则先处理栈中的操作符,直到待处理的操作符优先级高才进栈。
  3. 任意阶魔方阵。遍历会超时。有规律。

2017

题目链接:http://www.cskaoyan.com/thread-642276-1-1.html

  1. 实现atoi函数,题目没有说,但是要考虑负数、0、数字字母组合 情况。
  2. 寻找一个序列的最长之字形的长度,如1 5 3 6 1的长度为5,1 3 5的长度为2。
  3. Sum of Fibonacci。用a[i]保存斐波那契数列,用递归计算方法数。
if (a[i]>n) //优化点
        return;
if (sum<n) 
    {
        dfs(i + 1, sum + a[i]); //选取a[i] 
        dfs( i + 1, sum);    //不选取a[i] 
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,901评论 18 399
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,219评论 0 11
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,077评论 2 36
  • “是我!” 可能是信号不太好,声音有点沙哑。 我不知道说什么,只好没头没尾的回了句:“恩。” “你现在在哪里?” ...
    尹涓生阅读 2,383评论 1 0