摘要: 题意: 从长度为 n 的数字中去掉k个数字,问剩下的数字组成的数最小是多少。分析:可以看成从原来的数字中找一个长度为n-k的子串并且最小。每次从第st 个位置到第k+top个位置中找到最小的一个数字 st 为上次找到的数子的后一位,top为当前已经找到的数字个数。#include <stdio.h>#include <string.h>int main(){ char s[1005]; int res[1005]; int i, j, k; while(scanf("%s%d",s,&k)!=EOF) { int n = strlen(s); 阅读全文
posted @ 2012-10-13 13:02 'wind 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题意: 求出 n 以内的最大反素数。分析: 如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数. 求[1..N]中最大的反素数–>求约数最多的数 如果求约数的个数 756=2^2*3^3*7^1 (2+1)*(3+1)*(1+1)=24 基于上述结论,给出算法: 按照质因数大小递增顺序搜索每一个质因子,枚举每一个质因子 剪枝: 性质一: 一个反素数的质因子必然是从2开始连续的质数. 因为最多只需要10个素数构造:2,3,5,7,11,13,17,19,23,29 性质二:p=2^t1*3^t2*5^t3*7^t4…..必然t1> 阅读全文
posted @ 2012-10-13 09:29 'wind 阅读(226) 评论(0) 推荐(0) 编辑