- 博客(93)
- 资源 (1)
- 收藏
- 关注
原创 CASIA中文手写体字库gnt文件格式解析(python)
最近在学python,刚好毕设要用到一些手写体字库。而CASIA将手写体图片封装在gnt文件中。所以用python练手来解析gnt文件。#!/usr/bin/pythonimport structimport Imageimport oscount = 0path = 'C:/Users/Administrator/Desktop/HandWriting/test_data/'
2014-12-31 14:26:27
11472
14
原创 sicily 2014.Dairy Queen
类似于完全背包或者可以取无限个的硬币问题.#include #include using namespace std;int dp[301];int v[9];int main(){ int n; while(cin >> n) { memset(dp,0,sizeof(dp)); memset(v,0,sizeof(v)
2014-01-06 13:06:36
720
原创 sicily 1077.Cash Machine
将多重背包问题转化成01背包.使用模板...//这是一个多重背包问题,用模板转化成01背包#include #include #include using namespace std;int dp[100001];int num[1001];//每一种物品的数目int v[1001];//每一种物品的价值int V,N;//此题中每个物品的价值和重量是一样的void
2014-01-05 17:32:55
401
原创 sicily 1782.Knapsack
//转化成01背包问题#include #include #include using namespace std;int dp[10001];int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int n,m;//n为物品个数,m为背包容量 cin >> n >> m; int w[1001
2014-01-05 15:29:02
621
原创 sicily 1342. 开心的金明
//转化成01背包问题#include #include #include using namespace std;int dp[30001];int main(){ int N,m; while(cin >> N)//相当于背包中能承载的重量 { cin >> m;//相当于物品个数 int w[26],v[26];//w相当于背包中每个物品的重量,v为价值
2014-01-05 15:05:54
564
原创 sicily 1564.HOUSING
//本题题意:有m个人,无数个房间,每个房间至少为5人,求一共有多少分配方案//转化成能取无数次的硬币问题或者完全背包问题//1.转化成硬币找零问题:有5……m面额的硬币,每个硬币取的次数不受限制,求组成一个面额为m的方案个数.//2.转化成完全背包问题:背包大小为m,物品依次为5……m的,每个物品取的次数不受限制,求这些物品刚好放满背包的方案数.#include #include #includ
2014-01-05 12:27:10
495
转载 动态规划之01背包问题
转载于:http://blog.sina.com.cn/s/blog_6dcd26b301013810.html首先是问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大?可以这样理解:背包的背负有上限,因此在这个上限内尽可能多的装东西,并且价值越多越好。在这里我之想讨论动态规划解决这个问题的详细过程。
2014-01-04 19:57:25
393
原创 sicily 1158.Pick numbers
解题思路:原来以为用动态规划可以做,但是题目要求是最小的非负整数,动态规则中有可能为负数.所以采用深搜或者广搜都行.#include #include using namespace std;int m,n;int matrix[11][11];bool visited[11][11];int result;void dfs(int x,int y,int sum){
2014-01-04 15:38:45
395
原创 sicily 1091.Maximum Sum
解题思路:动态规划.需要学习动态规划的转移方程.最大连续子段和#include #include using namespace std;#define N 50001int d_left[N];//如d_left[i]记录的是从左往右到i位置的最大连续子段和int d_right[N];//如d_right[i]记录的是从右往左到i位置的最大连续子段和int r_left[N
2014-01-04 13:43:06
320
原创 sicily 1048. Inverso
这里借鉴了Ciel的思想.//用一个9位的二进制数来表示网格信息,即0表示对应位为白色,1为黑色.#include #include #include #include using namespace std;struct point{ int step; string s; point(int step) { this->step
2014-01-03 21:47:42
746
原创 sicily 1817.校歌手大奖赛
解题策略:排序去点vector的头和尾即可,不用考虑最高分或者最低分是否有重复.注意:用cin和cout会超时- -#include #include #include #include using namespace std;bool cmp(int a,int b){ return a > b;}int main(){ int caseNum; cin >>
2014-01-02 21:12:54
468
原创 sicily 1818.成绩转换
解题策略:用map可以实现映射,并对相同元素更新!#include #include #include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int m,n; cin >> n >> m; map maps; string name =
2014-01-02 20:41:00
394
原创 sicily 1500.Prime Gap
题意:给定一个整数,求这个离这个整数最近的两个素数(一大一小)之间的距离(差).解题策略:用筛法求素数表#include #include using namespace std;#define MAXLEN 1299710int isPrime[MAXLEN];int prime[MAXLEN];void sieve(int arr[], int len)//筛法求素数{
2014-01-02 20:13:57
1145
原创 sicily 1561.PRIME
解题思路:打表,用筛法求素数.#include #include using namespace std;#define MAXLEN 110010int isPrime[MAXLEN];int prime[10000];void sieve(int arr[], int len)//筛法求素数{ int i, j; int sqrt_len = sqrt(do
2014-01-02 19:37:41
405
原创 sicily 1814.日期计算问题
解题思路:对每个日期都计算其到0年0月0日的天数,然后两者相减.#include #include using namespace std;int longmonth[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年每月的天数int shortmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};/
2014-01-02 17:34:57
375
原创 sicily 1014. Specialized Four-Dig
#include #include #include using namespace std;int sum(string s)//求每位数相加之和{ int result = 0; for(int i = 0;i < s.length();i++) { if(s[i] >= '0' && s[i] <= '9') result = result + s[i] - '0
2014-01-02 16:53:15
457
原创 sicily.1813 M进制数问题
解题思路:先将数转换成十进制进行处理,再将结果转换成M进制数#include #include #include using namespace std;int change(string s,int m){ int result = 0; for(int i = 0;i < s.length();i++) { if(s[i] >= '0' && s[i] <= '9')
2014-01-02 16:30:22
427
原创 sicily. 1815 计算两点间的距离
#include #include #include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { double x1,y1,x2,y2; cin >> x1 >> y1 >> x2 >> y2; double dis = sqrt((x1 - x2)
2014-01-02 15:20:49
310
原创 sicily 1298.数制转换
#include #include #include using namespace std;//一个数被3整除后的余数为,-2,-1,0,1,2,在本题中,-2和2太小和太大,要进行处理。int main(){ int n; while(cin >> n) { if(n == 0) cout << 0; else { vector data; w
2014-01-02 14:54:01
478
原创 sicily 1325. Digit Generator
#include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int number; cin >> number; int count = 0, temp = number; while (temp > 0)//计算出输入的数字的位数 { te
2013-12-31 21:01:45
374
原创 sicily 1154. Easy sort
使用优先队列实现#include #include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { priority_queue, greater > q;//优先队列,优先级高的先pop int n; cin >> n; for(int i = 0
2013-12-31 19:45:17
451
原创 sicily 1510. Mispelling
#include #include using namespace std;int main(){ int caseNum; cin >> caseNum; int flag = 1; while(caseNum--) { string s; int index; cin >> index >> s; cout << flag++ << " "; for(i
2013-12-31 19:35:55
379
原创 sicily 1087.Funny game
#include using namespace std;int main(){ int caseNum; while(cin >> caseNum && caseNum != 0) { if(caseNum == 1 || caseNum == 2)//如果为1或者2,肯定是先下手的Alice赢 cout << "Alice" << endl; else if(cas
2013-12-31 19:26:48
548
原创 sicily 1795.Table tennis
#include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int n; int x; int y; cin >> n; int score = 0; for(int i = 0;i < n;i++) { cin >> x >>
2013-12-31 19:02:28
478
原创 sicily 1147.谁拿了最多奖学金
#include #include #include #include #include using namespace std;int const N = 101;struct student{ string name; int avscore;//期末平均成绩 int score2;//班级评议成绩 bool isboss;//是否是学生干部 bool west
2013-12-31 18:41:35
372
原创 sicily 1798.Aclie and Bob
哈哈哈!刚开始用BFS结果存储空间不够- -我用的是bool,即使一个二维的10000数组也不会超过32MB好吧- -。就是为了使用下面的算法才设置这么个不合理的条件。在bfs中发现了规律,偶数就是Alice赢,奇数就是Bob赢。。#include using namespace std;int main(){ int size; while(cin >> size
2013-12-31 17:10:34
531
原创 sicily 1324.Score
#include #include #include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int flag = 0; string s; cin >> s; int score = 0; for(int i = 0;i < s.len
2013-12-31 16:30:16
375
原创 sicily 1232.Electrical Outlets
#include #include using namespace std;int main(){ int caseNum; cin >> caseNum; while(caseNum--) { int number,trips[11]; cin >> number; for(int i = 0;i < number;i++) cin >> trips[i];
2013-12-31 16:16:56
377
原创 sicily 1145.校门外的树
#include #include using namespace std;int main(){ int length;//马路长度 int area;//区域数目 while(cin >> length >> area && length != 0) { int road[10001] = {0}; bool visited[10001];//标记区域是否重复 i
2013-12-31 16:07:27
473
原创 sicily 1144.淘淘摘苹果
今天开始刷几题水题搞一搞。。。#include using namespace std;int main(){ int apple[11] = {0}; for(int i = 0;i < 10;i++) { cin >> apple[i]; } int height; cin >> height; int result = 0; for(int i = 0;i
2013-12-31 15:39:30
634
原创 sicily 1082.MANAGER
题意:对于若干个进程(process)和一个进程队列有以下几种操作a x 将花费为x的进程添加到进程队列中p i 修改当前模式为ir 根据p的不同删除队列中最大或最小的进程并输出,p为1时删除并输出最小的,p为2时删除并输出最大的,注意只有当前remove次数是在remove list里面的时候才需要输出,否则只删除e 结束当前的casep的默认
2013-12-30 22:45:45
459
原创 sicily 1157.The hardest problem
水- -但是WA了两次!原因是n signed 32-bit integers. 即你的max值初始不能为0.#include using namespace std;int main(){ int n,max; while(cin >> n && n != 0) { int data[5] = {0}; cin >> max; for(int i = 0;i <
2013-12-30 21:09:03
388
原创 sicily 1090.Highways
题目大意:求最小生成树,并输出最小生成树中权值最大的边,解题思路:用prim算法.prim算法思想参考:Veegin#include #include using namespace std;#define N 505#define MAXINT 65538int n;int result;int map[N][N];//存储distancebool visited[
2013-12-30 17:27:59
392
原创 sicily 1940.Ordering Tasks
题意分析:1.拓扑排序 2.关于按字母序输出.解题思路:刚开始一直纠结在字母序输出问题上,最后了解到可以用一种自己美接触过的数据结构,优先队列即优先级高的元素先出列。用法如下: 1.priority_queueint> qi;//标准库中默认是 2.priority_queueint, vectorint>, greaterint> >qi2;//元素小的优先级高
2013-12-30 11:42:00
932
原创 sicily 1321.Robot
解题策略:典型的Djstra单源路径最短问题.问题的关键是将举证化为图的形式.#include #include #include #include #include using namespace std;struct edge{ int v;//点 int cost;//权值 edge(int a,int b) { this->v = a; this->co
2013-12-29 17:53:03
487
原创 sicily 1031.Campus
djstra单源最短路径.#include #include #include #include #include #include using namespace std;const int MAXN = 1000005;int road[202][202];bool used[202];int minlength[202];int number;int djst
2013-12-29 16:42:54
424
原创 sicily 1424.奖金
拓扑排序#include #include #include #include using namespace std;const int MAXN = 10005;int in[MAXN];vector g[MAXN];int bonus[MAXN];int main(){ int n,m; while(cin >> n >> m && n !=
2013-12-29 15:15:15
795
原创 sicily DAG?
深度搜索找回路#include #include #include #include using namespace std;const int MAXN = 105;bool visited[MAXN];vector g[MAXN];bool back = false;bool dfs(int node){ if(back) return false; for
2013-12-29 14:27:03
633
原创 sicily 有向图边的分类
这题只要过这个例子就可以- -#include #include #include #include using namespace std;const int MAXN = 105;bool visited[MAXN];vector g[MAXN];int main(){ int n,m; while(cin >> n >> m && n != 0)
2013-12-29 13:46:34
518
原创 sicily. bicoloring
#include #include #include using namespace std;int color[1005];int main(){ int n,m; while(cin >> n >> m && n != 0) { vector g[1005]; int a,b; for(int i = 0;i < m;i++) { cin >> a
2013-12-15 19:24:18
569
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人