C++的字符串转换和文件操作
2012-12-27 09:32
357 查看
附上大牛的地址,这篇文章写得很好,代码有高亮,有注释,一目了然……
/article/6447369.html
/article/6447369.html
/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2011 panyanyany All rights reserved. URL : http://acm.hdu.edu.cn/showproblem.php?pid=1150 Name : 1150 Machine Schedule Date : Thursday, August 25, 2011 Time Stage : 1 hour Result: 4493353 2011-08-25 21:37:30 Accepted 1150 0MS 272K 1538 B C++ pyy 4493348 2011-08-25 21:36:54 Wrong Answer 1150 0MS 272K 1538 B C++ pyy Test Data: Review: 二分图之最小覆盖——其实搞不太懂为什么这也算二分图,还是看课件才明白了一点点, 要自己想的话,还真是有点难度…… 第一次做,确实不会,只好参考了人家的代码,终于AC了…… //----------------------------------------------------------------------------*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #define max(a, b) (((a) > (b)) ? (a) : (b)) #define min(a, b) (((a) < (b)) ? (a) : (b)) #define FALSE 0 #define TRUE 1 #define infinity 0x0f0f0f0f #define minus_inf 0x80808080 #define MAXSIZE 109 typedef struct tagNODE { int mode[100] ; } ; int n, m, k, cnt ; int job, m1, m2 ; int cover[MAXSIZE], link[MAXSIZE] ; int adj[MAXSIZE][MAXSIZE] ; int find (int i) { int j ; for (j = 1 ; j < m ; ++j) { // j 在本次查找中没有被覆盖过, 且i 能与j 连通 if (cover[j] == FALSE && adj[i][j] == TRUE) { cover[j] = TRUE ; if (link[j] == FALSE || find (link[j]) == TRUE) { link[j] = i ; return 1 ; } } } return 0 ; } int main () { int i, j ; while (scanf ("%d", &n), n) { memset (adj, FALSE, sizeof (adj)) ; scanf ("%d%d", &m, &k) ; for (i = 0 ; i < k ; ++i) { scanf ("%d%d%d", &job, &m1, &m2) ; adj[m1][m2] = 1 ; } cnt = 0 ; memset (link, FALSE, sizeof (link)) ; // i 不用从0 开始,因为0 是初始状态,即是说, // 所有用0 状态解决的工作都不算入"重启次数"中, // 因为这些工作根本不需要重启机器 for (i = 1 ; i < n ; ++i) { memset (cover, FALSE, sizeof (cover)) ; if (find(i) == TRUE) ++cnt ; } printf ("%d\n", cnt) ; } return 0 ; }
相关文章推荐
- C++中对字符串或文件的操作函数,结尾的问题(持续补充)
- [C/C++]_[十六进制字符串转换数值并写入文件]
- C++与C语言字符串头文件及其对应的操作
- C/C++时间相关操作 SYSTEMTIME time_t 字符串的相互转换
- c++中的类型转换和字符串相应操作函数
- [C/C++]_[十六进制字符串转换数值并写入文件]
- C++ 中字符串操作--宽窄字符转换的实例详解
- 将一个十六进制字符串转换为十进制数值的问题|| 以及C++中string转换成char*|| c++文件按行输入
- vs2010 c++更安全的字符串及文件操作
- 黑马程序员_学习日记40_605基础加强(自定义泛型、装拆箱、foreach、文件操作、字符串与byte数组转换)
- vi部分命令. 替换操作; 文本格式转换; 在整个文件中替换; 在行首尾添加字符串.
- XML文件转换成字符串互相转换操作
- ** 文件操作与模板 编程题#4: 字符串操作(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 【C/C++语言入门篇】-- 文件操作
- C++中数字与字符串之间的转换
- C/C++/Window 文件操作
- C++学习笔记之对文件的操作<1>
- C++编译问题-检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式
- c/c++字符转换成字符串
- C/C++ 文件操作 (1)