啥也别说了

看C++和算法,眼泪哗哗的。。。
 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(4)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • algorithm(14) (rss)
  • pku/acm(59) (rss)
  • 数字图像(1) (rss)

随笔档案

  • 2010年5月 (1)
  • 2010年3月 (5)
  • 2009年3月 (1)
  • 2008年12月 (1)
  • 2008年11月 (66)

搜索

  •  

最新评论

  • 1. re: ACM 2325 Persistent Number 大数相除
  • 大数相除部分,貌似100/20的结果是错的。
  • --Raise
  • 2. re: 字典树原理(转)
  • 一看就是c++外行写的代码,
  • --ddd
  • 3. re: ACM 1664 放苹果
  • 赞。。新手 看了豁然开朗。.。谢谢了
  • --mokuku
  • 4. re: 字典树原理(转)
  • 代码风格不是很好
  • --ygqwna
  • 5. re: 字典树原理(转)[未登录]
  • 只有new,没有delete,必然内存泄露
  • --123

阅读排行榜

  • 1. 字典树原理(转)(7990)
  • 2. STL 堆排序使用和体会(转)(2091)
  • 3. ACM 2325 Persistent Number 大数相除(1873)
  • 4. 二叉树实例(1738)
  • 5. 大概了解cin,cin.getline,cin.clear,cin.ignore,cin.get()的用法(1626)

评论排行榜

  • 1. 字典树原理(转)(7)
  • 2. ACM 1730 Perfect Pth Powers(3)
  • 3. ACM 1929 Calories from Fat(2)
  • 4. ACM 2325 Persistent Number 大数相除(2)
  • 5. ACM 2316 SPIN(2)

Powered by: 博客园
模板提供:沪江博客
C++博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

一道网易的笔试题

一个K位的数N (K<=2000,N<=10^20)
找出一个比N大且最接近的数,这个数的每位之和与N相同
用代码实现之

如:
0050    所求数为0104
112     所求数为121


总算看到一题会做的 -_-|||
从右往左扫描即可,而且给出的例子也很典型。
考虑问题全面一些,注意 823993 这样的情况


例 3919999700
从右向左找到第一个非0 7,7-- ,并且把6移到最后
继续扫碰到9就移到最后,找到第一个非9 1, 1++
最后变成 3920069999

还要考虑到只有一位非零值,进位问题
如90-》108
posted @ 2008-11-11 00:25 hunter 阅读(359) | 评论 (0) | 编辑 收藏
 
ACM 1318 Word Amalgamation
     摘要: 晕死的题,就因为一个判断后的break循环弄了我半小时,还是看了前人的讨论才AC的。。。先判断长度一致的string,再判断是否所有字符相同(顺序不同) #include <iostream>#include <vector>#include <string>using namespace std;bool&n...  阅读全文
posted @ 2008-11-11 00:22 hunter 阅读(442) | 评论 (0) | 编辑 收藏
 
ACM 1316 Self Numbers
神奇的题,一个数加上这个数的各位数之和,得出的数即为有generator的数,列出所self number的数(小于10000)
可惜,不知道为啥自己电脑上可以运行,onlinejudge不接受。。。
#include <iostream>
#include 
<vector>
#include 
<string>
using namespace std;

int digsum(int n)    //计算各位之和
{
    
int sum=0;
    
while (n)
    
{
        sum
+=n%10;
        n
/=10;
    }

        
return sum;
}

int main()
{
    
int a[10003];
    
int m;
    
for (int i=1;i<=10003;i++)
    
{
         m
=i+digsum(i);
         
if (m<=10000)
         
{
             a[m
-1]=1;
         }

    }

    
for (int j=0;j<10000;j++)
    
{
        
if (a[j]!=1)
        
{
            printf(
"%d\n",j+1);
        }

    }

}


附上某高手代码。。。
#include"stdio.h"

int s[10100]={0};

void main()
{
    
int a,b,c,d;
    
for(a=0;a<=9;a++)
        
for(b=0;b<=9;b++)
            
for(c=0;c<=9;c++)
                
for(d=0;d<=9;d++)
                     s[a
*1001+b*101+c*11+d*2]=1;
       
for(a=1;a<=10000;a++)
        
if(s[a]==0)
        printf(
"%d\n",a);

}
posted @ 2008-11-10 18:38 hunter 阅读(279) | 评论 (0) | 编辑 收藏
 
PKU 1308 Is It A Tree?
     摘要: 判断是否为一棵树?菜鸟思路。。。 1: 0 0 空树是一棵树2: 1 1 0 0 不是树 不能自己指向自己3: 1 2 1 2 0 0 不是树....自己开始一直在这么WA  好郁闷 重复都不行呀~~55554: 1 2 2 3 4 5 不是树  森林不算是树(主要是注意自己)5: 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1  注意 一个...  阅读全文
posted @ 2008-11-10 18:05 hunter 阅读(438) | 评论 (0) | 编辑 收藏
 
仅列出标题
共8页: 1 2 3 4 5 6 7 8