UVA
fengyu0556
这个作者很懒,什么都没留下…
展开
-
10010- Where's Waldorf?
#include#include#include#define LOCALchar grid[55][55];int d[8][2]={{0,-1},{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1}};int *search(char *s,int m,int n){ int i,j; int a,b,count,c原创 2010-05-08 21:30:00 · 536 阅读 · 0 评论 -
146--ID Codes
本题有两种方法:方法一:递推法///递推法:根据规律,从最后面字母ai依次向前搜寻,若找到第一个字母bi比ai大,///则将ai与bi交换,并将原bi之后的字母从小到大重新排列;若未找到则从次最后搜寻,如此等等#include#include#define LOCALchar s[55],ch;int len;void decide(){ int i,j原创 2010-05-28 23:14:00 · 545 阅读 · 0 评论 -
10098--Generating Fast
///也可以用STL函数#include#include#include#define LOCALchar s[15],res[15];int len;int cmp(const void*_a,const void* _b){ char *a=(char*)_a; char *b=(char*)_b; return *a-*b;}void p原创 2010-05-29 11:44:00 · 378 阅读 · 0 评论 -
729--The Hamming Distance Problem
///组合问题,主要利用生成法,方法见转载的文章////也可以用增量构造法,算出所有的增序排列但只输出符合要求的排列#include#include#define LOCALint n,h,k;int t[20];int find(){ for(k=n-1;k>=1;k--) { if(t[k]==1&&t[k-1]==0) return 1;原创 2010-05-29 22:46:00 · 463 阅读 · 0 评论 -
539--The Settlers of Catan
<br />////回溯#include<stdio.h>#include<string.h>#define LOCALint max,temp;int path[30][30];int n,m;void max_path(int k){ int i,j; for(i=0;i<n;i++) { if(!path[k][i]) { path[i][k]=path[k][i]=1; temp++; max=max>temp?max:原创 2010-06-02 21:19:00 · 406 阅读 · 0 评论 -
216--Getting in Line
<br />///简单的回溯#include<stdio.h>#include<math.h>#include<string.h>#define LOCALtypedef struct{ int x,y;}node;////computer[10]保存电脑的坐标,dis[10][10]保存每两台电脑之间的距离,temp为临时最小距离,min保存最后////结果,flag保存标志,意为是否已经选取过,res[10]保存当前的选取顺序,dd[10]为最小的选取顺序no原创 2010-06-01 14:28:00 · 435 阅读 · 0 评论 -
639--Don't Get Rooked
<br />///简单回溯#include<stdio.h>#include<string.h>#define LOCALchar s[7][7];int flag[7][7];int n,max,num,total,k;int test(int x,int y){ int i,j,ok=1; j=y; for(i=x-1;i>=0;i--) { if(flag[i][j]==1) { ok=0; break; } if原创 2010-06-02 10:17:00 · 498 阅读 · 0 评论 -
331--Mapping the Swaps
<br />///简单回溯,学习回溯#include<stdio.h>#define LOCALint num,n;int t[5];int decide(){ int i,ok=1; for(i=0;i<n-1;i++) if(t[i]>t[i+1]) { ok=0;break; }return ok;}void count(){ int i,j,temp; /*for(j=0;j<n;j++) printf("%d原创 2010-06-04 00:28:00 · 322 阅读 · 0 评论 -
10344--23 out of 5
<br />////回溯,但是效率还是不高,学习#include<stdio.h>#include<string.h>#include<time.h>#define LOCALint ok;int a[5],flag[5];long num;void solve(int k){ int i; if(ok) return; if(k==4) { if(num==23) ok=1; return; } else {原创 2010-06-03 18:59:00 · 369 阅读 · 0 评论 -
10474--Where is the Marble
///排序后查找#include#include#define LOCALint num[10005],test;int n,q,cas=1;int cmp(const void* _a,const void* _b){ int* a=(int*)_a; int* b=(int*)_b; return *a-*b;}void decide(){原创 2010-05-30 14:14:00 · 414 阅读 · 0 评论 -
10167--Birthday Cake
////暴力求解,本题主要利用生成随机数来试探求解///主要函数有srand():设置随机种子,一般以当前时间来设置随机种子,即为srand((unsigned)time(NULL))///randomize()也是这个效果///rand()生成0-32767范围内的数///rand()和srand()都包含在头文件stdlib.h中///time()是日历时间,time(NU原创 2010-05-25 18:26:00 · 585 阅读 · 0 评论 -
131--The Psychic Poker Player
////利用生成子集来判断哪几张牌需要放弃,然后将deck中前几张牌移入hand中///模拟判断所得的值#include#include#define LOCALchar hand[7][4];char deck[7][4];char temp[7][4];char s[6];int num=0,max;char subset[35][6];char r原创 2010-05-26 23:30:00 · 970 阅读 · 2 评论 -
10361--Automatic Poetry
#include#include#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);#endif int n; char t; scanf("%d",&n); while(n--) { char s1[原创 2010-05-09 03:07:00 · 428 阅读 · 0 评论 -
409-Excuses, Excuses!
#include#include#include#define LOCALchar word[22][22];char excuse[22][75];char s[22];int num[22];int main(){#ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",std原创 2010-05-09 05:31:00 · 384 阅读 · 0 评论 -
537-- Artificial Intelligence?
#include#include#define LOCALdouble getnum(char *t){ int i,j; char te[100]; double num; memset(te,/0,sizeof(te)); for(i=2,j=0;;i++) { if(t[i]==.||t[i]>=0&&t[i]<=9) t原创 2010-05-09 22:09:00 · 718 阅读 · 0 评论 -
10815--Andy's First Dictionary
#include#include#include#include#define LOCALchar word[5002][202];char t;int cmp_string(const void* _a,const void* _b){ char* a=(char* )(_a); char* b=(char* )(_b); return strcmp(原创 2010-05-10 01:40:00 · 713 阅读 · 0 评论 -
644--Immediate Decodability
#include#include#include#define LOCALchar codes[10][12];int cmp_string(const void* _a,const void* _b){ char* a=(char* )_a; char* b=(char* )_b; return strcmp(a,b);}int deter(char*原创 2010-05-10 12:52:00 · 667 阅读 · 0 评论 -
10115--Automatic Editing
#include#include#define LOCALchar in[260],temp[260];char rules[11][82],replace[11][82];int find_replace(char* s,char* ru,char* rep){ int lena=strlen(s); int lenb=strlen(ru); int len原创 2010-05-10 16:40:00 · 436 阅读 · 0 评论 -
575--Skew Binary
#include#include#include#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);#endif char s[35]; int i; while(1) { scanf("%s",s);原创 2010-05-11 01:10:00 · 437 阅读 · 0 评论 -
11205--The broken pedometer
///暴力求解,先生成p的子集,然后逐个子集判断,每个子集均为1和0的序列///为1时表示选这个位,否则为不选。则问题化简为求含有最少个1的子集,并保证只观察///1所在的位时,输入的n个序列不会重复///题目的测试数据不是很严密,如输入1 1 1 0时有的得到0却仍然能通过,///这主要是没有注意到答案至少为1不可能为0#include#include#inc原创 2010-05-26 18:02:00 · 1288 阅读 · 1 评论 -
POJ_1026_Cipher
<br />刚开始感觉很一般的一道题,没想到做起来竟然很蹉跎,肯定不能暴力解密,因为转换次数有可能很大,所以极有可能会TLE,分析题目:可以将序列分成一个个组或者说是集合,这个集合中的元素通过解密后还是在这个集合中,好像是置换群的概念,以后好好学习一下。若一个集合元素个数为m,则在这个集合中的元素都是以m为循环的。刚开始是想求出所有组元素个数的最小公倍数,然后一起处理,可是这个数有可能非常的大,所以就将各个组分别处理。下面有两种处理方法:1。将全部元素分别处理 2.将一个组中的元素同时处理 方法2的效果还原创 2010-06-13 23:35:00 · 709 阅读 · 0 评论