- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 poj 1143 number game
题目比较长,题意不大好理解现在把题意抽象一下,大概是以下意思:1.给2~20的数字中的几个数组成数组a,其中是你可以选择的数字;2.选择的规则如下:(1).如果选择了某个数字x,则数组a中是其倍数的数字将被划去;(2).假如数字n在数组a中,若n-x 的值并不在数组a中,则划去n;3.当没有数字可以选取时,则此player失败;4.让你找出先选的player选择哪个数字
2014-09-25 08:04:38 977
原创 hdu 3779 Railroad (动态规划)
RailroadTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 554 Accepted Submission(s): 223Problem DescriptionA train yard is a com
2014-09-18 17:04:23 1103 1
原创 uva 12086 - Potentiometers (树状数组)
就是树状数组的模板就可以,但是特别注意一点,树状数组中的C数组不清零,就会导致出错。#include#include#include#includeusing namespace std;const int maxn = 200010;int c[maxn];int a[maxn];int n;int lowbit(int x){ return x&(-x)
2014-09-08 15:16:55 818
原创 uva 11235 Frequent values(游程编码+区间最小值查询)
游程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。游程编码因此而得名),使符号长度少于原始数据的长度。只在各行或者各列数据的代码发生变化时,一次记录该代码及相同代码重复的个数,从而实现数据的压缩。游程编码(Run Length Encoding , RLE)例如:5555557777733322221111111游程编码为:(5
2014-09-08 14:43:25 993
原创 uva 10125 - Sumsets(a+b+c=d)
希望下次能马上想到a+b 、d-c 分开来算。然后保存其中一项的值,算出另一项来就查找该值是否存在。这种方法明显比三重循环省时。还有下面的方法:三重循环穷举a,b,d;然后二分穷举c;#include#include#includeusing namespace std;int a[1010],i,j,k,ans,f,n;int comp(int x,
2014-09-04 19:29:20 800
原创 uva 11762 Race to 1
记忆化搜索的方式计算f(x)#include#include#include#includeusing namespace std;#define mem(a) memset(a,0,sizeof(a))const int maxn = 1000005;int n;int primes[maxn],prime_cnt;int vis[maxn];int v[maxn];
2014-09-04 18:51:28 759
原创 uva 1330 City Game (最大子矩阵)
空白最多的最大子矩阵:#include#include#includeusing namespace std;const int maxn = 1005;int mat[maxn][maxn],up[maxn][maxn],left[maxn][maxn],right[maxn][maxn];int main(){ int t; scanf("%d",&t);
2014-09-04 16:17:10 872
原创 uva 12124 - Assemble
#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1005;#define mem(a) memset(a,0,sizeof(a))struct peijian{ int p; int q;}g[maxn][maxn];m
2014-09-04 12:54:32 675
原创 uva 10048 - Audiophobia(floyd 的变形)
给出一个无向连通图以及边权,目的求从一个点到另一个点的路径中 边权最大值 最小的那条路径,输出的是该条路径的最大边权。因为是两点间路径问题,且数据量很小(只有100个) ,所以考虑使用floyd算法。但是要求的并不是传统 floyd 所求的 两点之间最短路 问题,但是通过理解floyd算法的原理,可以发现floyd的思想可以用来解决这种问题:对于任何一条至少包含两条边的路径i->j,一
2014-09-01 15:15:13 714
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人