ACM-ICPC
文章平均质量分 63
tiutiu2011
这个作者很懒,什么都没留下…
展开
-
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 · 350 阅读 · 0 评论 -
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 · 328 阅读 · 0 评论 -
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 · 306 阅读 · 0 评论 -
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 · 331 阅读 · 0 评论 -
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 · 335 阅读 · 0 评论 -
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 · 334 阅读 · 0 评论 -
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 · 415 阅读 · 0 评论 -
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 · 311 阅读 · 0 评论 -
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 · 353 阅读 · 0 评论 -
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 · 618 阅读 · 0 评论 -
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 · 247 阅读 · 0 评论 -
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 · 414 阅读 · 0 评论 -
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 · 931 阅读 · 0 评论 -
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 · 290 阅读 · 0 评论 -
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 · 399 阅读 · 0 评论 -
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 · 299 阅读 · 0 评论 -
URAL 1203 Scientific Conference (贪心 + 优化)
#include #include #define MAX_TIME 30000int numOfReports;//start[endTime]表示结束时间为endTime的报告的开始时间//时间上限远比报告数量的上限小,采用这样的数据结构可以节省内存,而且连对结束时间排序都不用了,又节省了时间,虽然总要遍历所有可能的结束时间点[1, 30000],但总体上还是划算//技巧:给数组原创 2015-09-29 14:47:31 · 383 阅读 · 0 评论 -
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 · 263 阅读 · 0 评论 -
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 · 294 阅读 · 0 评论 -
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 · 461 阅读 · 0 评论 -
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 · 294 阅读 · 0 评论 -
POJ 2456 Aggressive cows (二分 + 贪心)
#include int numOfStalls, numOfCows;int position[100001];int heapSize;void maxHeapify(int parent){ int largest = parent; int left = parent << 1; if (left position[largest]) largest = left;原创 2015-09-22 19:23:58 · 415 阅读 · 0 评论 -
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 · 325 阅读 · 0 评论 -
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 · 290 阅读 · 0 评论 -
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 · 297 阅读 · 0 评论 -
URAL 1389 Roadworks
//在一个图中选取尽可能多没有相同结点的边#include #define MAX 100000typedef struct Road{ int to; int next;}Road;Road toArray[MAX * 2];int numOfTos;int toLastAdded[MAX + 1];//degree[city]表示与城市city相连的路中,有可能被封的路的原创 2015-10-01 20:03:01 · 259 阅读 · 0 评论 -
USACO 2.3 Longest Prefix
#include #define DEBUG 0#define TESTCASES 6typedef struct Primitive{ char str[11]; int len;}Primitive;Primitive PrimitiveArray[201];int list;char sequence[200001];int canGet[200001];void原创 2015-10-01 23:30:12 · 313 阅读 · 0 评论 -
USACO 2.3 Zero Sum
#include #define DEBUG 1#define TESTCASES 9int max;char *symble = "+- ";int isZero(char *str){ //其实用后缀表达式也可以计算结果 int sign = 1; int value = 0; int sum = 0; int i; for (i = 0; str[i] != '\0原创 2015-10-02 23:18:08 · 196 阅读 · 0 评论 -
USACO 3.1 Stamps
#include #define DEBUG 1#define TESTCASES 9#define MAX_VALUES 50#define MAX_TOTALVALUE 2000000int valueArray[MAX_VALUES + 1];int numOfStamps, numOfValues;int minStampsArray[MAX_TOTALVALUE + 1]原创 2015-10-18 19:20:00 · 336 阅读 · 0 评论 -
USACO 3.1 Humble Numbers
#include #define DEBUG 1#define TESTCASES 9#define MAX_PRIMES 100#define MAX_N 100000//注意别开小了#define INF 0xFFFFFFFFint numOfPrimes, Nth;long long primeArray[MAX_PRIMES + 1];long long humble原创 2015-10-18 17:25:51 · 346 阅读 · 0 评论 -
HDU 1054 Strategic Game (树形DP)
#include #define MAX_NODES 1500#define MIN(x, y) ( (x) < (y) ? (x) : (y) )int numOfNodes;int root;int numOfRoads;typedef struct Road{ int to; int next;}Road;Road RoadArray[MAX_NODES * MAX_N原创 2015-10-19 14:22:47 · 319 阅读 · 0 评论 -
URAL 1152 False Mirrors (DFS枚举)
#include #define MAX_BALCONIES 20#define INF 0xFFFFFFFFint numOfBalconies;int monstersArray[MAX_BALCONIES + 1];int numOfMonsters;int minDamage;void shoot(int monstersLeft, int currentDamage){原创 2015-10-19 16:22:06 · 415 阅读 · 0 评论 -
USACO 2.1 Hamming Codes (递归)
#include #define DEBUG 1#define TESTCASES 9int codewords, numOfBits, hammingDist;int max;int result[257];int countBit1(int num){ int numOfBit1 = 0; while (num){ num &= (num - 1); numOfBi原创 2015-10-01 09:40:38 · 304 阅读 · 0 评论 -
UVA 11292 Dragon of Loowater
#include#include#define MAX 20000int headHight[MAX + 1];int knightHight[MAX + 1];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ int numOfHeads, numO原创 2015-10-01 20:59:19 · 234 阅读 · 0 评论 -
USACO 2.2 Preface Numbering (模拟)
#include #define DEBUG 1#define TESTCASES 8int pages;char *RomanNumbers= "IVXLCDM";//pattern表示一位(个,十,百,千)上的罗马数字的字母表示模式,采用012表示为了跟RomanNumbers的下标关联char *pattern[10] = {"-1", "0", "00", "000", "0原创 2015-10-01 11:27:00 · 266 阅读 · 0 评论 -
USACO 2.2 Subset Sums (DP动态规划)
#include #define DEBUG 1#define TESTCASES 9#define MAX 39//partitions[preNums][sum]表示在前preNums个数中选取,使总和为sum的方案数//注意:第preNums个数,也就是最后一个数,可以选或者不选long long partitions[MAX + 1][800];int n;int ma原创 2015-10-01 13:12:55 · 281 阅读 · 0 评论 -
USACO 2.2 Runaround Numbers
#include #define DEBUG 1#define TESTCASES 9unsigned long int num;int visited[10];int digitArray[20];int size;int main(){#if DEBUG int testCase; for (testCase = 1; testCase <= TESTCASES; te原创 2015-10-01 16:49:41 · 247 阅读 · 0 评论 -
USACO 2.3 Cow Pedigrees (DP动态规划)
#include #define DEBUG 1#define TESTCASES 9int main(){#if DEBUG int testCase; for (testCase = 1; testCase <= TESTCASES; testCase++){ char inputFileName[20] = "inputX.txt"; inputFileName[5]原创 2015-10-02 11:06:40 · 256 阅读 · 0 评论 -
URAL 1039 Anniversary Party (树形DP)
#include #define MAX_EMPLOYEES 6000#define MAX(x, y) ( (x) > (y) ? (x) : (y) )int numOfEmployees;int convivialityRate[MAX_EMPLOYEES + 1];typedef struct Subordinate{ int subordinate; int next;原创 2015-10-19 17:35:34 · 319 阅读 · 0 评论 -
USACO 2.3 Money Systems (DP 动态规划)
#include #define DEBUG 1#define TESTCASES 9//ways[coinageValueIndex][constructedMoney]表示考虑前coinageValueIndex种钱币凑成constructedMoney的数量的钱时的方案数,第coinageValueIndex种钱币可以选或者不选//数组很大要声明为全局变量,如果声明为局部变量栈会溢原创 2015-10-03 11:39:02 · 349 阅读 · 0 评论