- 博客(100)
- 收藏
- 关注
原创 USACO 2.1 Hamming Codes (迭代)
#include #define DEBUG 1#define TESTCASES 9int numberHasBit1[8]={0,1,3,7,15,31,63,127};int numberArray[257];int nunmbers;int codewords, numOfBits, hammingDist;int result[257];int countBit1(i
2015-09-30 21:51:40 286
原创 USACO 2.1 Healthy Holsteins (DFS)
#include #define DEBUG 1#define TESTCASES 9#define MAX_TYPES_VITAMINS 25#define MAX_TYPES_FEEDS 15int typesOfVitamins;int minRequare[MAX_TYPES_VITAMINS + 1];int typesOfFeeds;int vitaminOfFeed[
2015-09-30 19:05:37 272
原创 USACO 2.1 Sorting a Three-Valued Sequence (贪心)
#include #define DEBUG 1#define TESTCASES 8#define MAX(x, y) ( (x) > (y) ? (x) : (y) )#define MIN(x, y) ( (x) < (y) ? (x) : (y) )int numOfRecords;int recordArray[1001];//bucket[num]表示数字为num的记录
2015-09-29 21:59:15 278
原创 URAL 1106 Two Teams (DFS + 二分图)
#include #define MAX_PEOPLE 100int people;int friendship[MAX_PEOPLE + 1][MAX_PEOPLE + 1];int team[MAX_PEOPLE + 1];void divide(int one){ int teamNum = team[one]; int another; for (ano
2015-09-29 19:59:48 249
原创 HDU 5240 Exam
#include #include #define MAX_EXAMS 100000int numOfExams;typedef struct Exam{ int hoursBefore; int hoursLater; int hoursLast;}Exam;Exam ExamArray[MAX_EXAMS + 1];int compare(Exam one, Exam
2015-09-29 18:28:51 273
原创 URAL 1303 Minimal Coverage (贪心)
#include #include #define MAX_SEGMENTS 100000typedef struct Segment{ int left; int right;}Segment;Segment SegmentArray[MAX_SEGMENTS];int numOfSegments;int choosen[MAX_SEGMENTS];int cmp(con
2015-09-29 16:42:44 309
原创 URAL 1203 Scientific Conference (贪心 + 优化)
#include #include #define MAX_TIME 30000int numOfReports;//start[endTime]表示结束时间为endTime的报告的开始时间//时间上限远比报告数量的上限小,采用这样的数据结构可以节省内存,而且连对结束时间排序都不用了,又节省了时间,虽然总要遍历所有可能的结束时间点[1, 30000],但总体上还是划算//技巧:给数组
2015-09-29 14:47:31 363
原创 URAL 1203 Scientific Conference (贪心)
#include #include #define MAX_ERPORTS 100000int numOfReports;typedef struct Report{ int startTime; int endTime;}Report;Report ReportArray[MAX_ERPORTS + 1];int compare(Report one, Report ano
2015-09-29 14:16:21 287
原创 URAL 1162 Currency Exchange (Bellman-Ford贝尔曼-福特算法)
#include int numOfCurrencies, numOfExchPoints, NickCurrencyNum;double NickCurrencyAmount;typedef struct Exchange{ int from; int to; double rate; double commisssions;}Exchange;Exchange Exchan
2015-09-29 12:27:37 868
原创 Priority Queue 优先级队列
#include #define INF ( (1 << 31) - 1 )void swap(int *a, int *b){ int c = *a; *a = *b; *b = c;}int getParent(int child){ return child >> 1;}int leftChild(int parent){ return parent << 1;
2015-09-29 09:57:29 246
原创 URAL 1205 By the Underground or by Foot (建图 + Dijkstra + 堆优化)
#include #include #define INF (1 << 30)double footSpeed, undergroundSpeed;int numOfStations;int start, end;typedef struct Coordinates{ double x; double y;}Cooridnates;Coordinates Coordinate
2015-09-29 09:15:19 386
原创 USACO 2.1 Ordered Fractions
#include #define DEBUG 1#define TESTCASES 9int max;typedef struct Fraction{ int numerator; int denominator;}Fraction;Fraction FractionArray[25600];int numOfFractions;//判断a,b是否互质int relat
2015-09-28 20:11:14 291
原创 URAL 1205 By the Underground or by Foot (建图 + Dijkstra迪杰斯特拉算法)
#include #include #define INF (1 << 30)double footSpeed, undergroundSpeed;int numOfStations;int start, end;typedef struct Coordinates{ double x; double y;}Cooridnates;Coordinates Coordinate
2015-09-28 17:16:27 444
原创 URAL 1254 Die Hard (SPFA)
#include #define MAX_SIZE 75#define MAX_BOMBS 1000#define SQUARE_ROOT_2 1.414213562373095048#define MAX_DISTANCE 5626int xSize, ySize, numOfBombs;double velocity;char map[MAX_SIZE + 1][MAX_SIZ
2015-09-28 12:42:16 600
原创 USACO 2.1 The Castle
#include #define DEBUG 1#define TESTCASES 8int numOfRows, numOfColumns;int wall[50][50][4];int numOfRooms;int roomNumArray[50][50];int roomSize[2501];int directionArray[4][2] = {{0, -1}, {-
2015-09-27 22:00:24 235
原创 USACO 1.5 Checker Challenge (位操作)
#include #define DEBUG 1#define TESTCASES 8#define IN(x) ( (x) >= 1 && (x) <= size ? 1 : 0 )#define WITHIN(x, y) ( IN(x) && IN(y) ? 1 : 0 )int size;int allQueuesPleacedState;int solution[14];
2015-09-27 13:05:15 284
原创 USACO 1.5 Checker Challenge (DFS + 剪枝)
#include #define DEBUG 1#define TESTCASES 8#define IN(x) ( (x) >= 1 && (x) <= size ? 1 : 0 )#define WITHIN(x, y) ( IN(x) && IN(y) ? 1 : 0 )int size;int conflict[14][14];int solution[14];int n
2015-09-27 00:24:38 323
原创 USACO 1.5 Checker Challenge (DFS)
#include #define DEBUG 1#define TESTCASES 8#define IN(x) ( (x) >= 1 && (x) <= size ? 1 : 0 )#define WITHIN(x, y) ( IN(x) && IN(y) ? 1 : 0 )int size;int conflict[14][14];int solution[14];int n
2015-09-26 23:58:18 336
原创 USACO 1.5 Superprime Rib (DFS)
#include #define DEBUG 0#define TESTCASES 5int length;int firstDigit[4] = {2, 3, 5, 7};int otherDigit[4] = {1, 3, 7, 9};//效率比较高的判断素数的写法int isPrime(int n){ if (n == 2) return 1; if (n % 2 =
2015-09-25 23:04:51 331
原创 USACO 1.5 Prime Palindromes (打表查询)
#include#define DEBUG 1#define TESTCASES 9#define ABS(x) ( (x) > 0 ? (x) : -(x) )#define PRECISION 1e-2#define SIZE 779int nums;int primePalindromes[SIZE] = {5, 7, 11, 101, 131, 151, 181, 191,
2015-09-25 21:44:08 403
原创 URAL 1198 Jobbery (强连通分量 Gabow)
#include #define MAX_MEMBERS 2000int numOfMembers;typedef struct To{ int member; int nextToNum;}To;To ToArray[MAX_MEMBERS * MAX_MEMBERS + 1];int ToNum;int ToNumLastAdded[MAX_MEMBERS + 1];int
2015-09-25 16:42:48 294
原创 URAL 1198 Jobbery (强连通分量 Tarjan)
#include #define MAX_MEMBERS 2001int numOfMembers;typedef struct Member{ int member; int next;}Member;Member MemberArray[MAX_MEMBERS * MAX_MEMBERS];//用作邻接链表,注意数组别开小了int MemberNum;int MemberLa
2015-09-25 15:39:06 307
原创 URAL 1198 Jobbery (强连通分量Kosaraju)
#include #define MAX_MEMBERS 2000int numOfMembers;int call[MAX_MEMBERS + 1][MAX_MEMBERS + 1];//用做邻接矩阵int visited[MAX_MEMBERS + 1];int stack[MAX_MEMBERS + 1];int top;int SCCNumArray[MAX_M
2015-09-25 15:22:12 317
原创 URAL 1242 Werewolf (DFS)
#include #define MAX_VILLAGERS 1000int numOfVillagers;typedef struct Relative{ int villager; int next;}Relative;Relative relativeArray[2 * MAX_VILLAGERS + 1];int relativeNum;int an
2015-09-25 09:29:31 397
原创 POJ 1248 Safecracker
#include #define MAX_LETTERS 13#define CHAR_TO_INT(c) ( (c) - 'A' + 1 )int target;char letters[MAX_LETTERS];int len;int strCmp(char *from, char *to){ while (*from == *to){ if (*from == '\0
2015-09-24 14:27:57 346
原创 POJ 3714 Raid
#include #include #define MAX 100001#define INF (1e+11)struct POINT{ double x; double y; int isAgent;};int numOfStationsOrAgents;POINT pointArray[MAX * 2];int numOfPoints;int indexOfPo
2015-09-24 14:25:43 335
原创 POJ 1243 One Person
#include #define MAX 31int numOfGuesses;int numOfLifelines;int price[MAX][MAX];int solve(int guess, int lifeline){ if (guess == 0){ return 0; } if (price[guess][lifeline] != 0){ return p
2015-09-24 14:24:01 281
原创 POJ 1251 Jungle Roads (最小生成树 Prim普里姆算法)
#include #define INF (1 << 31 - 1)#define MAX 27int numOfVillages;int costMatrix[MAX][MAX];//used for Adjacent Matrixint minCostArray[MAX];int flagOfInTree[MAX];int main(){ //freopen("input
2015-09-24 14:22:05 437
原创 POJ 1251 Jungle Roads (最小生成树 Kruskal克鲁斯卡尔算法)
#include #define MAX_ROADS 76#define MAX_VILLAGES 27struct ROAD{ int start; int end; int cost;};ROAD roadArray[MAX_ROADS];int numOfRoads;int roadNum;int numOfVillages;int parent[MAX_V
2015-09-24 14:19:43 372
原创 URAL 1416 Confidential
#include #define INF (1 << 31 - 1)#define MAX_PLANETS 501int numOfPlanets;int numOfPassages;int costArray[MAX_PLANETS][MAX_PLANETS];int minCostArray[MAX_PLANETS];int added[MAX_PLANETS];int
2015-09-24 14:15:18 286
原创 URAL 1982 Electrification Plan
#include #define MAX 101#define INF (1 << 31 - 1)int numOfCities;int numOfPSs;//number of power stationsint PSArray[MAX];int roubleArray[MAX][MAX];int minRoubleArray[MAX];int electrified[MA
2015-09-24 14:12:54 337
原创 POJ 3114 Spy Communication (强连通分量tarjan + SPFA)
#include #define MAX_CITIES 555#define MAX_AGREEMENTS (MAX_CITIES * MAX_CITIES)#define INF (1 << 30)#define QUEUE_SIZE 200000000int numOfCities;int numOfAgreements;struct AGREEMENT{ int ad
2015-09-24 14:10:36 312
原创 POJ 2186 Superstar Cow
//refer to http://www.tuicool.com/articles/AZ77Fv#include #define MAX_COWS 10001#define MAX_PAIRS 50001int numOfCows;int numOfPairs;typedef struct { int adjaVertex; int nextEdgeNum;} edg
2015-09-24 14:08:46 287
原创 POJ 3614 Sun Bathing (贪心)
#include#include#define MAX 2501int cows;int bottles;int minSPF[MAX];int maxSPF[MAX];int lotionSPF[MAX];int covers[MAX];struct node{ int SPF; node *pNext;};node *head =
2015-09-24 12:24:07 303
原创 POJ 2823 Sliding Window (单调队列)
#includeint farms, fields, paths, wormholes;typedef struct{ int from; int to; int seconds;}edge;edge edges[5201];int numOfEdges;int time[1001];void addEdge(int from, int to,
2015-09-24 11:55:50 333
原创 POJ 3259 Back to the past
#includeint farms, fields, paths, wormholes;typedef struct{ int from; int to; int seconds;}edge;edge edges[5201];int numOfEdges;int time[1001];void addEdge(int from, int to,
2015-09-24 11:52:12 234
原创 POJ 1382 Cover The Island
#include #include #define MAX 1001int islands;int radius;int x[MAX];int y[MAX];double left[MAX];double right[MAX];int radars;double radarX;int partition(int left, int right
2015-09-24 11:42:48 299
原创 POJ 1154 Letter game (DFS)
#include #define MAX 22int rows;int columns;char board[MAX][MAX]; //up down left rightint dirs[4][2] = {-1, 0, 1, 0, 0, -1, 0, 1};int visitedLetters[26];
2015-09-24 11:39:43 237
原创 POJ 2531 Network revenger (DFS)
#include #define MAX 21int nodes;int traffic[MAX][MAX];int subsetA[MAX];int subsetB[MAX];int sizeOfA;int sizeOfB;int maxSum;void devide(int currentNode){ if (currentNode == nodes){
2015-09-24 11:37:01 239
原创 URAL 1208 Legendary Teams Contest (DFS)
#include #define NAMES_IN_TEAM (3 + 1)#define MAX_TEAMS (18 + 1)#define MAX_LETTERS (20 + 1)int numOfTeams;char namesInTeam[MAX_TEAMS][NAMES_IN_TEAM][MAX_LETTERS];int isTeamVisited[MAX_TEAMS];i
2015-09-24 11:27:21 265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人