自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TiuTiu Zone

while (Just Do IT) {代码虐我千百遍;我待代码如初恋;}

  • 博客(189)
  • 收藏
  • 关注

原创 URAL 1980 Road to Investor (二分 + SPFA)

#include #define MAX_CROSSES 10000#define MAX_ROADS 10000#define PRECISION 1e-7#define FABS(x) ( (x) > 0 ? (x) : - (x) )#define INF_TIME 1e6int numOfCrosses, numOfRoads;typedef struct Road{ i

2015-09-17 16:13:06 361

原创 URAL 1225 Flags (DP动态规划)

#include #define MAX_STRIPES 45#define COLORS 3#define RED 0#define WHITE 1#define BLUE 3 int numOfStripes;/* * 对下标从0到(numOfStripes- 1)的条纹依次进行染色 * 当把第tail个条纹(也就是当前为止已经上色的最后一个条纹)染成颜色为color时,

2015-09-15 11:13:52 299

原创 HDU 1950 Bridging signals ( 枚举+DFS O(n2^n) )

#include #define MAX_POARTS 40000int numOfTests;int numOfPorts;int arrayOfPorts[MAX_POARTS + 1];//connected[index]表示端口arrayOfPorts[index]已经连接上int connected[MAX_POARTS + 1];int result;//get l

2015-09-14 20:31:09 280

原创 HDU 1950 Bridging signals ( DP动态规划 O(n^2) )

#include #define MAX_POARTS 40000int numOfTests;int numOfPorts;int arrayOfPorts[MAX_POARTS + 1];//lenOfIS[index]表示遍历arrayOfPorts到索引index的时候,以arrayOfPorts[index]为"结尾"的递增子序列的长度int lenOfIS[MAX_POA

2015-09-14 19:43:55 303

原创 HDU 1950 Bridging signals (DP动态规划 + 二分搜索 O(nlogn) )

#include #define MAX_POARTS 40000int numOfTests;int numOfPorts;int arrayOfPorts[MAX_POARTS + 1];//minTail[len]表示在所有长度为len的递增子序列的终止元素(也就是子序列中的最大值)里面的最小值int minTail[MAX_POARTS + 1];//需要更新对应的minT

2015-09-14 16:51:12 381

原创 Binder 驱动程序

Android系统Binder驱动程序的初始化,打开文件和映射内存相关源码。

2015-09-13 14:18:40 480

原创 Binder进程间通信机制的Service Manager组件的启动过程

Service Manager组件在Binder进程间通信中是上下文管理者,负责管理Service组件,并且向Client组件提供获取Service代理对象的服务,其启动过程可以分为以下三个阶段:1.打开并映射Binder设备文件;2. 成为上下文管理者;3.循环等待Client进程请求。下面从源码中了解这三个阶段。

2015-09-13 11:20:03 567

原创 URAL 1072 Routing (建图+迪杰斯特拉)

#include #define INF 99999999#define MAX_COMPUTERS (100)#define MAX_INTERFACES (10) struct COMPUTER{ int numOfInterfaces; long long interface[MAX_INTERFACES];};COMPUTER computerArray[M

2015-09-13 00:15:31 416

原创 URAL 1008 Image Encoding (BFS)

#include #define SIZE 10int n;int leftBottomX, leftBottomY;int x, y;int image[SIZE + 1][SIZE + 1];typedef struct{ int x; int y;} PIXEL;PIXEL queue[SIZE * SIZE + 1];int head, tai

2015-09-13 00:06:30 288

原创 URAL 1033 Labyrinth (DFS)

#include#define MAX 35int size;int M[MAX][MAX];int visited[MAX][MAX];int numOfWalls;int direction[4][2] = { -1, 0, 1, 0, 0, -1, 0, 1};void DFS(int x, int y){ if (M[x][y] == 1 || visited[x][

2015-09-13 00:01:39 271

原创 USACO 1.3 Prime Cryptarithm (剪枝)

#include #define DEBUG 0#define TESTCASES 7#define MAX_DIGITS 9int numOfDigits;int used[MAX_DIGITS + 1];int isDigitsUsed(int factor, int digits){; while ( factor != 0){ digits--; if (used

2015-09-12 23:55:20 255

原创 URAL 1434 Buses in Vasyuki (双静态邻接链表+BFS)

#include#define MAX_ROUTES 1000#define MAX_STOPS 100000#define MAX_NODES 200000typedef struct StopInRoute{ int stop; int next;}StopInRoute;StopInRoute stopArray[MAX_NODES + 1];//used as adja

2015-09-12 22:07:22 382

原创 URAL 1022 Genealogical Tree (拓扑排序)

#include#define MAX 101int numOfMembers;int childStack[MAX][MAX];int top[MAX];int numOfParentsArray[MAX];int main(){ scanf("%d", &numOfMembers); int member; for (member = 1; member <= num

2015-09-12 21:58:32 300

原创 URAL 1022 Genealogical Tree (DFS)

#include #define MAX 101int numOfMembers;int relation[MAX][MAX];//relation[child][parent]int stack[MAX];int top;int flagOfInStack[MAX];void toFindChild(int parent){ if (flagOfInStack[parent]

2015-09-12 21:49:51 282

原创 USACO 1.3 Barn Repair (快排+贪心)

#include #define DEBUG 0#define TESTCASES 9#define MAX_STALLS 200int numOfBoards, numOfStalls, numOfCows;int stallOccupied[MAX_STALLS + 1];int arrayOfIntervals[MAX_STALLS];int numOfIntervals;

2015-09-12 21:11:28 407

原创 USACO 1.3 Calf Flac (最长回文子串 DP动态规划)

#include #define DEBUG 0#define TESTCASES 8#define MAX_CHARS 20000//原字符串char arrayOfChars[MAX_CHARS + 1];int numOfChars;//过滤非字母字符并把大写字母转换成小写字母的字符串char arrayOfLetters[MAX_CHARS + 1]; int num

2015-09-12 18:13:21 675

原创 USACO 1.3 Mixing Milk (快排+贪心)

#include #define DEBUG 0#define TESTCASES 9#define MAX_FARMERS 5000int milkNeeded;int numOfFarmers;typedef struct Farmer{ int price; int milk;}Farmer;Farmer farmers[MAX_FARMERS + 1];void

2015-09-12 16:39:14 345

原创 USACO 1.3 Calf Flac (枚举)

#include #define DEBUG 0#define TESTCASES 0#define MAX_CHARS 20000char arrayOfChars[MAX_CHARS + 1];int numOfChars;char arrayOfLetters[MAX_CHARS + 1];int numOfLetters;int map[MAX_CHARS + 1];

2015-09-12 16:37:13 396

原创 USACO 1.2 Name That Number (查字典)

#include #define DEBUG 0#define TESTCASES 9#define MAX_DIGITS 12#define MAX_NAMES 5000char dictionary[MAX_NAMES][MAX_DIGITS + 1];int numOfNames;char strOfNum[MAX_DIGITS + 1];char *letterToDi

2015-09-12 11:08:48 354

原创 USACO 1.2 Transformations (用结构体来模拟)

#include #define DEBUG 0#define TESTCASES 8#define MAX 10//结构体可当形参,跟数组一样退化为指针typedef struct Square{ int size; char arrayOfChars[MAX + 1][MAX + 1];}Square;Square initialSquare;Square f

2015-09-11 21:44:38 382

原创 USACO 1.2 Palindromic Squares (进制转换)

#include #define DEBUG 0#define TESTCASES 9#define SIZE_CHARS 17char *digits = "0123456789ABCDEFGHIJK";int base;void transform(int decimalNum, char numStr[], int *len){ int quotient = 0; in

2015-09-10 21:21:03 332

原创 USACO 1.2 Milking Cows (归并排序+离散化)

#include #define DEBUG 0#define TESTCASES 9#define MAX 5000int numOfFarmers;int time[MAX][2];int temp[MAX][2];void timeCopy(int to[], int from[]){ to[0] = from[0]; to[1] = from[1];}

2015-09-10 20:18:13 481

原创 USACO 1.2 Dual PalinDromes (递归判断回文)

#include #define DEBUG 0#define TESTCASES 8int N,S;void transform(int num, int base, char *str, int *len){ int quotient = 0; int i = 0; while ( (quotient = num / base) != 0){

2015-09-10 14:51:55 417

原创 USACO 1.1 Broken Necklace (DP动态规划)

#include #define DEBUG 0#define TESTCASES 8#define LEN_NECKLACE 350#define MAX(a, b) ( (a) > (b) ? (a) : (b) )int numOfBeads;int numOfDoubleBeads;char necklace[LEN_NECKLACE * 2 + 1];//beads

2015-09-09 21:49:08 431

原创 USACO 1.1 Broken Necklace (模拟)

#include #define DEBUG 0#define TESTCASES 8#define LEN_NECKLACE 350#define MOD(x) ( (x) < 0 ? (x) + numOfBeads : (x) % numOfBeads )//用取模操作来模拟环的技巧真赞int numOfBeads;char necklace[LEN_NECKLACE + 1

2015-09-09 19:51:58 398

原创 USACO 1.1 Friday the Thirteenth

#include #define DEBUG 0#define TESTCASES 8#define MONTHS 12#define DAYS 7int daysOfMonth[MONTHS + 1] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int daysOfDay[DAYS + 1];int main()

2015-09-09 09:12:01 347

原创 小论“枚举”

枚举搜索(Complete Search),即直接面向答案,通过尝试所有方案来发现答案,是我们解决一个问题时最先也是最容易想到的方法。应用枚举搜索编程时应该遵循”“KISS“原则,即”Keep it simple stupid”。因为枚举程序简单所以易于编写和调试,因为枚举的思想比较笨,所以运行比较耗时。应用枚举搜索需要特别注意能否在规定的时间与空间内寻找出解,如果不行的话,思考搜索对象有无规律可

2015-09-07 15:05:12 448

原创 URAL 1272 Non-Yekaterinburg Subway (查并集)

#include#define MAX_ISLANDS (10000 + 1)#define MAX_TUNELS (12000 + 1)#define MAX_BRIDGES (12000 + 1)struct CONNECTION{ int oneIsland; int anotherIsland;};CONNECTION connectionArray[MAX_TUNEL

2015-09-01 13:49:41 367

原创 URAL 1837 Isenbaev's Number (BFS)

#include#define NAMES_IN_A_TEAM 3#define MAX_TEAMS 100#define MAX_SIMBOLS 20struct NAME { char name[MAX_SIMBOLS + 1]; int team; int num;};NAME NAMEArray[NAMES_IN_A_TEAM * MAX_TEAMS + 1];in

2015-09-01 12:38:43 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除