2013年12月26日

USACO 1.5.3 Superprime Rib

摘要: 题意: 求出给定长度为N的数,使得满足这个数从右边开始一位一位的切掉,剩下的数全部是质数解法:一开始想按照顺序枚举,发现预处理质数的时间就已经很复杂了(最大长度为8,[0, 100000000]),果断搜爆了看了一下解法提示,一位一位的进行搜索,剪枝条件(第一位数只能是2,3,5,7)其余位数只能是(1,3,5,7,9)质数条件的限制,然后进行搜索即可,此时判断质数复杂度大为降低,比前一种思路减少了大量的运行时间,所以不能想得太简单,USACO的题目都是很有质量的/*ID: lsswxr1PROG: sprimeLANG: C++*/#include #include #include #in 阅读全文

posted @ 2013-12-26 22:05 小书包_Ray 阅读(170) 评论(0) 推荐(0) 编辑

USACO 1.5.2 ★Prime Palindromes

摘要: 题意:给定区间[a, b]求出区间里面的所有 回文质数解法: 最简单的做法是枚举所有的数字,判断两个条件,但在第9组数据的时候时间会爆 看了一下HINT,题目提示预先产生所有的回文数,将遍历所有数组的时间将为常数时间产生数组,HINT给出的回文数产生方法更为巧妙,采用这样的思路大幅降低了运行时间/*ID: lsswxr1PROG: pprimeLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include 阅读全文

posted @ 2013-12-26 12:57 小书包_Ray 阅读(223) 评论(0) 推荐(0) 编辑

USACO 1.5.1 Number Triangles

摘要: 题意:经典数字三角形最大问题解法:基本动态规划 dp[i][j]表示以(i,j)结束的最大值, 转移方程:dp[i][j] = max{dp[i-1][j-1], dp[i-1][j]} + num[i][j], 结果为max dp[n - 1][j] 当然也可以设置dp[i][j]表示从(i, j)出发所能获得的最大值 dp[i][j] = max{dp[i+1][j], dp[i+1][j+1]} + num[i][j]USACO题目的复杂度有些跳跃/*ID: lsswxr1PROG: numtriLANG: C++*/#include #include #include #i... 阅读全文

posted @ 2013-12-26 11:01 小书包_Ray 阅读(230) 评论(0) 推荐(0) 编辑

2013年12月25日

USACO 1.4.4 Mother's Milk

摘要: 题意: 给定A,B,C三个杯子的容积(0-20的整数),初始状态为C满牛奶,每一次互相倒必须有一个灌满或者一个为空, 求出所有当A为空的时候,C当前牛奶的状态的数值,从小到大输出解法: 搜索,深度优先和宽度优先都可以。需要一个数组来记录状态的访问情况, 下面采用dfs来进行求解,states数组标记访问状态,ans数组记录结果 /*ID: lsswxr1PROG: milk3LANG: C++*/#include #include #include #include #include #include #include #include #include #include #i... 阅读全文

posted @ 2013-12-25 10:12 小书包_Ray 阅读(285) 评论(0) 推荐(0) 编辑

2013年12月24日

USACO 1.4.3 Arithmetic Progressions

摘要: 题意: 给定等差数列的长度N, 求出满足此长度的等差数列, 其中所有数字来源于集合平方数(即x = a^2 + b^2 a, b都是非负整数) 给定a, b的范围为 0 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define USACO#ifdef USACO#define cin f... 阅读全文

posted @ 2013-12-24 22:29 小书包_Ray 阅读(253) 评论(0) 推荐(0) 编辑

背包笔记 (一) 01背包

摘要: 看《编程之美》第1.6个问题饮料供货问题,本质上还是背包问题。对于背包问题继续进行一个总结参考资料:《背包九讲》问题一:01背包问题,基本问题,核心问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}采用滚动数组优化空间复杂度以上方法的时间和空间复杂度均为 阅读全文

posted @ 2013-12-24 11:13 小书包_Ray 阅读(182) 评论(0) 推荐(0) 编辑

2013年12月19日

不错的数据结构和算法可视化网站

摘要: 可视化经典的数据结构和算法过程http://www.cs.usfca.edu/~galles/visualization/Algorithms.html 阅读全文

posted @ 2013-12-19 16:55 小书包_Ray 阅读(130) 评论(0) 推荐(0) 编辑

2013年12月15日

mysql C# tutorial 一些简单的范例

摘要: 从C#访问mysql数据库的简单范例需要安装安装mysql-connector-net,并且在project中加入mysql.datahttp://dev.mysql.com/downloads/connector/net/Connection, Command, DataReader, DataSet 以及 DataProvider是C#与mysql交互的核心部分。查询MySQL versionusing System;using MySql.Data.MySqlClient; public class Example{ static void Main() { ... 阅读全文

posted @ 2013-12-15 19:41 小书包_Ray 阅读(522) 评论(0) 推荐(0) 编辑

2013年11月29日

USACO SEC.1.4 No.2 The Clocks ★经典题目

摘要: 题意:详细见USACO描述解法:作为IOI真题,这道题目确实是非常经典,有许多方法可以求解。基本算法:最容易想到的就是枚举所有情况(4^9复杂度)在时间复杂度上是可以接受的DFS与上面的方法类似BFS,与DFS不同之处在于,由于题目要求找到最短且字典序最小的解,所以BFS一旦搜到答案可以立即返回BFS需要解决的问题:1.如何表征当前状态,常规的作法仍然是数组。string也可以,但时间C++的string时间复杂度太大。2.如何进行状态的比较和复制,如果采用数组的话,可以直接使用memcmp速度更快,同理memcpy3.队列,采用STL的queue4.Hash判重,BFS中关键的一步,一开始想 阅读全文

posted @ 2013-11-29 20:06 小书包_Ray 阅读(240) 评论(0) 推荐(0) 编辑

2013年11月28日

USACO SEC.1.3 No.4 Prime Cryptarithm

摘要: 题意:竖式乘法解法:简单按照题意枚举模拟即可可以借用一下大数乘法运算方法里面的一些方式[][][] * [][] = 先乘法得到结果, 再统一处理进位/*ID: lsswxr1PROG: crypt1LANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;///宏定义c 阅读全文

posted @ 2013-11-28 10:46 小书包_Ray 阅读(217) 评论(0) 推荐(0) 编辑

导航