题意: 有一个k*k 的方阵,让你从当中每一行挑选一个数字相加最后能得到K^K次方的和,输出其中最小的k个。思路:先对每一行排序然后两两归并,每次取前k个再和下一行再进行归并。在归并的时候用一个优先队列维护最大的k个值每次先放k个进去然后一次每行和队顶比较,若是小则替换否则break最后输出即可。代...
分类:
其他好文 时间:
2014-06-18 17:46:28
阅读次数:
142
Description
The Broken Pedometer
The Problem
A marathon runner uses a pedometer with which he is having problems. In the pedometer the symbols are represented by seven s...
分类:
其他好文 时间:
2014-06-18 12:31:09
阅读次数:
203
C - ID Codes
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Submit Status
Appoint description:
System Crawler (2014-05-12)
Description
ID Cod...
分类:
其他好文 时间:
2014-06-18 11:30:56
阅读次数:
283
分治法的典例
当练手了
神奇的是,使用inplace_merge按说应该是O(n)的算法,但是用sort nlogn的算法反而更快
先上快排版
#include
#include
#include
#include
#include
using namespace std;
const int SIZE = 10000+10;
const double INF = 1...
分类:
其他好文 时间:
2014-06-18 07:17:22
阅读次数:
170
题目链接:uva 11825
题意:
你是一个黑客,侵入了n台计算机(每台计算机有相同的n种服务),对每台计算机,你可以选择终止一项服务,则他与其相邻的这项服务都终止。你的目标是让更多的服务瘫痪(没有计算机有该项服务)。
思路:(见大白70页,我的方程与大白不同)
把n个集合P1、P2、Pn分成尽量多的组,使得每组中所有集合的并集等于全集,这里的集合Pi是计算机i及其相邻计...
分类:
其他好文 时间:
2014-06-16 20:23:14
阅读次数:
200
这是一个入门的数论题目 , 只需要简单的找素数和快速幂取模
题意:输入一个数 n , 如果这个数是非素数 , 问是不是 这个2~n-1区间的所有数都满足 ?
解法:由于数据量不大 , 可以直接暴力求解
解法1: 暴力求解
#include
#include
#include
using namespace std;
long long prime[65010];
...
分类:
其他好文 时间:
2014-06-15 15:26:51
阅读次数:
215
UVA 10127 - Ones
题目链接
题意:求出多少个1组成的数字能整除n
思路:一位位去取模,记录答案即可
代码:
#include
#include
int n;
int main() {
while (~scanf("%d", &n)) {
int ans = 1;
int now = 1;
while (now) {
...
分类:
其他好文 时间:
2014-06-15 15:10:41
阅读次数:
151
UVA 294 - Divisors
题目链接
题意:求一个区间内,因子最多的数字。
思路:由于区间保证最多1W个数字,因子可以遍历区间,然后利用事先筛出的素数求出质因子,之后因子个数为所有(质因子的个数+1)的积
代码:
#include
#include
#include
using namespace std;
const int N = 35005;
in...
分类:
其他好文 时间:
2014-06-15 10:17:36
阅读次数:
158
题目:给你一些单词和一个字母矩阵,问这个单词最早出现在哪里(单词可以向8个直线方向书写)。
分析:字符串。枚举矩阵中每个字母的8个方向,生成最长字符,然后在里面找单词即可。
说明:处理前,将大写字母先转化成小写字母。
#include
#include
#include
#include
using namespace std;
char text[52][52];
char w...
分类:
其他好文 时间:
2014-06-15 09:33:33
阅读次数:
164
Uva 11728 - Alternate Task
题目链接
题意:给定一个因子和,求出对应是哪个数字
思路:数字不可能大于因子和,对于每个数字去算出因子和,然后记录下来即可
代码:
#include
#include
const int N = 1005;
int n, ans[N];
void init() {
memset(ans, -1, sizeo...
分类:
其他好文 时间:
2014-06-14 11:59:06
阅读次数:
264