UVA
JeriLee
编程爱好者
展开
-
UVA 11722
题意:两个人分别在一个时间段内到达这个地方,给你两个区间[a,b]和[c,d] ,他们分别等概率的在区间某个时间到达,先到达的人等w秒后离开,问他们碰面的概率。线性规划的题目AC代码:#include #include #include #include using namespace std;double p_l(int x, int y, int b)原创 2016-04-11 20:34:43 · 479 阅读 · 0 评论 -
UVA12230 - Crossing Rivers
#include #include #include using namespace std;int main () { int cas = 1; int N; double D, p, l, v; while (scanf("%d%lf", &N, &D) == 2 && (N || D)) { for (int i = 0; i <原创 2015-03-11 21:22:10 · 463 阅读 · 0 评论 -
UVA11809 - Floating-Point Numbers
做个结构体,M存位数 和 E存阶码然后 匹配数据即可#include #include #include typedef long long ll;const double min_differ=1e-5;struct{ double M; //存储对应尾数 ll E; //存储对应指数}po[11][33];void solve(double m原创 2015-03-09 19:23:31 · 409 阅读 · 0 评论 -
UVA11971 - Polygon
这个题 比较水,读者自己看吧#include using namespace std;typedef unsigned long long llu;llu gcd(llu a,llu b){ return a%b==0? b: gcd(b,a%b);}int main(){ int T,kase=0; cin>>T; while(T--){原创 2015-03-17 19:15:13 · 426 阅读 · 0 评论 -
UVA512 - Spreadsheet Tracking
#include #include #include #include using namespace std;const int maxd=100;const int BIG=10000;int r,c,n,d[maxd][maxd], d2[maxd][maxd], ans[maxd][maxd], cols[maxd];void copy(char type, int p原创 2015-03-09 21:48:43 · 560 阅读 · 0 评论 -
UVA11346 - Probability
概率问题,题目不是很难。题意:在给定的【-a,a】 * 【-b,b】内随机取一个点 面积ab > s的概率#include #include int main() { int T; double a, b, s; scanf("%d", &T); while (T--) { scanf("%lf%lf%lf", &a, &b, &s);原创 2015-03-17 18:53:17 · 371 阅读 · 0 评论 -
UVA10539 - Almost Prime Numbers
#include #include using namespace std;const int maxn=1000000+10;typedef long long ll;typedef unsigned long long llu;int num[maxn]={0};vector prime;void init(){ for(llu i=2; i*i<maxn; i++原创 2015-03-20 17:42:05 · 436 阅读 · 0 评论 -
uva1210
// UVA1210#include #include typedef long long ll;typedef unsigned long long llu;using namespace std;vector prime;const int maxn=10000+10;void init(){ int num[maxn]={0}; for(int i=2;原创 2015-03-20 17:01:08 · 734 阅读 · 0 评论 -
UVA 10820
//UVA 10820 other#include const int len = 50001;int phi[len];inline void phi_table(){ int i, j; for (i = 2; i < len; ++i) if (!phi[i]) for (j = i; j < l原创 2015-03-20 15:19:15 · 368 阅读 · 0 评论 -
UVA294 - Divisors
用j*j==i 来降低复杂度#includeint main(){ int T; scanf("%d",&T); while(T--){ int a, b; scanf("%d %d",&a,&b); int best=0,num=0,i,j; for(i =a; i<=b; i++){原创 2015-03-08 20:43:53 · 399 阅读 · 0 评论 -
UVA11040 - Add bricks in the wall
#include #include using namespace std;const int maxn=9;int tab[10][10];int main(){ int T; cin>>T; while(T--){ memset(tab,0,sizeof(tab)); for(int i=0; i<maxn; i+=2)原创 2015-03-08 14:58:52 · 467 阅读 · 0 评论 -
UVA 1636 - Headshot
设字串00个数为a,0的个数为b, 则两个概率分别是 a/b和 b/n ,为题就是比较他俩大小,左边大就是 SHOOT ,右边大就是 ROTATE#include #include using namespace std;int main(){ string s; while(cin>>s){ int a=0,b=0,n=s.length();原创 2015-03-19 18:21:29 · 438 阅读 · 0 评论 -
UVA439 - Knight Moves
#include #include using namespace std;const int maxn=8;const int most=15;int chess[maxn][maxn];int a1,a2,b1,b2;int best;char s1[5],s2[5];int input(){ if(!(cin>>s1)) return 0; cin>>s2原创 2015-03-04 22:24:38 · 344 阅读 · 0 评论 -
UVA572 - Oil Deposits
简单递归,以为会超时的,竟然还是过了。#include #include #include using namespace std;const int maxn=100+10;int oil[maxn][maxn];int m,n;int cnt=0;int input(){ scanf("%d %d",&m,&n); string s; memset原创 2015-03-04 17:31:35 · 379 阅读 · 0 评论 -
UVA1644 - Prime Gap
筛选法#include typedef unsigned long long llu;const llu M=1299710;const llu N=100000+10;int cnt=0;int a[M];int b[N];void sar(){ llu temp; a[0]=a[1]=1; for(llu i =2; i<M;i++){原创 2015-03-04 23:55:29 · 507 阅读 · 0 评论 -
1641 - ASCII Area
#include #include using namespace std;int main(){ int m,n; while(cin>>m>>n){ getchar(); char a[m][n+1]; for(int i =0; i<m; i++) gets(a[i]); doub原创 2015-03-04 22:33:00 · 363 阅读 · 0 评论 -
UVA536 - Tree Recovery
这个题类似于UVA699,练习先序遍历,中序,后序。建树类似于UVA699题目的代码#include #include #include using namespace std;const int maxn= 100;char pre_order[maxn],ino_order[maxn],pos_order[maxn];char L[maxn],R[maxn];int n,原创 2015-03-04 20:17:12 · 433 阅读 · 0 评论 -
UVA815 - Flooded!
这个题是个水题,读者请自行看代码吧,秒懂的#include #include #include using namespace std;int main(){ int m,n,kase=0; while(cin>>m>>n,m&&n){ n*=m; double a[n]; for(int i =0; i>a[i];原创 2015-03-10 22:58:10 · 781 阅读 · 0 评论 -
UVA1600 - Patrol Robot
一个数组存 0 和1一个数组存 走到 某位置 和 经过某门槛时 的 步数,步数 只能少不能多#include #include using namespace std;int outed=0,best;const int N=25;int a[N][N];int m,n,k;int state[21][21][21];int dir[4][2]={-1,0,1,0,0,原创 2015-03-12 20:15:32 · 539 阅读 · 0 评论 -
UVA129 - Krypton Factor
一个回溯的基本题目,简单易理解// UVA 129#include #include #include using namespace std;const int maxn=500;int n,l;int s[maxn];int cnt;void print(int cur){ for(int i=0; i<cur; i++){ if(i%64=原创 2015-03-22 23:45:03 · 488 阅读 · 0 评论 -
HDU 4283
题解地址:HDU4283 题解AC代码:#include#include#include#includeusing namespace std;const int maxn =105;const int INF =0x4f4f4f4f;int T, kase=0;int n;int a[maxn];int sum[maxn];int dp[maxn][maxn];原创 2016-04-08 21:09:43 · 736 阅读 · 0 评论 -
UVA - 10825
UVA10825 题意很简单了- -。略题解: 枚举最后一位数字,进行判断。判断:计算出每位数,然后进行全排列,挨个进行判断是否可行。附上AC代码:#include#include#include#includeusing namespace std;const int maxn = 400+10;const int maxm = 10;int ans[maxm];i原创 2016-01-29 18:32:10 · 500 阅读 · 1 评论 -
UVA 1629 - Cake slicing 题解
题意:在一块方形蛋糕上有N个樱桃,只能横,竖切割,切割最小长度使得每一块上蛋糕上有且仅有一个樱桃。思路:基础动态规划转移方程:dp[n][m][h][w]=max(dp[n][m][h][t]+dp[n][m+t][h][w-t]+w, dp[n][m][t][w]+dp[n+t][m][h-t][w]+w);n m 表示矩阵大小, t表示从t出切割,造成的最优解。当然切割后的两块 都原创 2015-09-24 21:28:32 · 478 阅读 · 0 评论 -
UVA 1025
紫书有详细的思路,题目挺水的,不再赘述#include#include#includeusing namespace std;const int INF = 0x7f7f7f7f;int n, T;int t[55];bool has_train[300][55][2];int m, x;int dp[300][55];int kase=0;int main(){原创 2015-10-11 15:57:59 · 527 阅读 · 0 评论 -
UVA 1363
AC代码:很简单,紫书说的很明白#include#include#includeusing namespace std;long long n, k;long long p_cal(long long k, long long p){ if(p==0) return n; return min(k/p, n);}int main(){ while原创 2015-10-07 21:57:22 · 462 阅读 · 0 评论 -
UVA 1632题解
题意: 给你n个物品 他们的位置和消失时间,要在它们消失之前收集起来,每一秒走1个单位长度。题解:DP动态规划,用dp【2】【maxn】【maxn】的转移方程dp【0】【i】【j】表示收集好 从i到j的物品 所需要的最短时间 最后站在最左端dp【1】【i】【j】表示收集好 从i到j的物品 所需要的最短时间 最后站在最右端、这里需要一个理解一个事情,就是路过这个地方的话物品一定原创 2015-10-06 21:07:07 · 490 阅读 · 0 评论 -
UVA 12545 - Bits Equalizer
水题一枚。AC代码:#include#include#include#include#includeusing namespace std;string s, t;int n, kase=0;int main(){ scanf("%d", &n); while(n--){ cin>>s>>t; int last_0=0,原创 2015-09-10 18:28:09 · 478 阅读 · 0 评论 -
UVA 1610 - Party Games
题意:给你2k个字符串,然后自己构造一个字符串其中一半要求小于等于这个字符串,另一半大于这个字符串,这个字符串尽量短,这个基础上如果有多个解,再求最小的解。直接从前往后扫,要注意Z字符的情况代码比较简洁,这个题坑比较多AC代码:#include#include#include#include#includeusing namespace std;const int m原创 2015-09-10 17:41:15 · 419 阅读 · 0 评论 -
UVA 11134
voj的链接http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34086方法 贪心或者优先队列贪心的题目, 一开始认为是水题 后来想到了这种情况 ******* *****所以按照x1排列就错了,应该按照x2排列,求最左边的值,因为x2越小的越受限制,水题,不多写了贪心AC代码:#inc原创 2015-08-06 21:03:56 · 427 阅读 · 0 评论 -
UVA 208 - Firetruck
水题一个。题意:给你一个图,求点1到某个点的所有路径,路径按照字典序输出。方法:DFS暴搜,这里我用了并查集判断是否连接,减少不必要的运行时间,也可以用bfs检查就是麻烦一点。代码还是一样的清晰。#include#include#include#includeusing namespace std;const int maxn=22;int goal, num=0;b原创 2015-08-13 20:21:11 · 375 阅读 · 0 评论 -
UVA1592-Database
这个题开得有点晚,只是因为读不懂题,这个题也提供了一个好思路来优化代码。首先,把字符串映射到整形,然后相比整形而不是字符串,大大缩短时间。题意:输出表格中存在的 r1,r2 ,c1,c2使得表格的r1行c1列与r2行c1列相同,r1行c1列与r2行c1列相同。AC源码:#include#include#include#includeusing namespace std;原创 2015-05-14 17:18:46 · 1372 阅读 · 0 评论 -
UVA - 10375 Choose and divide
分子分母分别分解成素数的乘积,先约分,后计算#include #include #include using namespace std;const int maxn= 10000+10;int a[maxn], pri[maxn],num[maxn];int cnt=0;void get_maxn(){ for(int i =2,temp;i<maxn;i原创 2015-03-18 22:35:27 · 399 阅读 · 0 评论 -
UVA10622
代码比较简单,唯一分解// UVA 10622#include #include using namespace std;typedef long long ll;#define PMAX 50000int a[PMAX];vector prime;void init(){ for(ll i=2 ; i*i<PMAX; i++){ if(a[i]原创 2015-03-22 16:17:55 · 544 阅读 · 0 评论 -
UVA10129 - Play on Words
题目类型:欧拉回路题目要求 数据像如网 一样 串成一串 ,只有一个头一个尾除了检查 偶数头和尾 还要检查是否 不是多个串#include #include #include #include using namespace std;string s1="Ordering is possible.\n";string s2="The door cannot be opene原创 2015-03-13 20:07:34 · 378 阅读 · 0 评论 -
UVA10305 - Ordering Tasks
分类:拓扑排序题意: 题目 输入 前后两个 数字 ,按照 前面的数字在前,后面的数字在后的原则 进行排序#include #include #include using namespace std;const int maxn= 100+10;vector vec[maxn];int have[maxn],out[maxn];int dig=0;void dfs(int原创 2015-03-13 19:21:43 · 459 阅读 · 0 评论 -
UVA712 - S-Trees
此题 有规律,本来打算 重新建树的,但是后来还是放弃了,用下标法。#include#include#include#define N 1000#define M 10int main(){ int t = 1, n, m; while (scanf("%d", &n), n){ char str[N], tem[M], q[M]; i原创 2015-03-12 23:28:46 · 406 阅读 · 0 评论 -
UVA297 - Quadtrees
建一个32*32大小的二维数组,然后递归先序遍历填数#include #include #include #include using namespace std;const int len = 32;const int maxn = 2048;char s[maxn];int buf[len][len],cnt;void draw(const char *s, int &p原创 2015-03-04 16:17:57 · 432 阅读 · 0 评论 -
UVA 10791 - Minimum Sum LCM
两种方式,第一种比较复杂,是利用了上一个题写的筛选素数模板#include #include #include #include using namespace std;const int maxn= 46341+10;typedef long long ll;ll a[maxn], pri[maxn],num[maxn];int cnt=0;void get_maxn(原创 2015-03-19 06:35:54 · 347 阅读 · 0 评论 -
UVA1594 - Ducci Sequence
一个练习map和vactor的题目,切记不要sort,排序之后就不对了,一开始还不知道为什么,后来才发现。其实这个题完全可以,循环到全部为0结束或者1000次结束,用数组来做,可能运行效率更高。介于这个题的意思,还是用来练习map和vector了#include #include #include #include #include #include #include u原创 2015-02-04 11:24:22 · 1868 阅读 · 0 评论 -
UVA12096 - The SetStack Computer
stack的用法#include #include #include #include using namespace std;const int MAXN = 2010;const int N = 20;int cnt;stack > stk;map, int> mp;set s1,s2;void pop(){ s1 = stk.top(); stk.pop原创 2015-02-04 12:11:07 · 435 阅读 · 0 评论