SJTU

2017-03-11  本文已影响21人  yingtaomj

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

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] 
    }
上一篇下一篇

猜你喜欢

热点阅读