soj
「已注销」
我的目标 离我还有多远我的梦想 有点遥不可及我要用十倍苦心做最突出一个我不能退缩 不管路多艰难 我都要努力我要靠自己的双手去做自己喜欢做的事我要靠自己的努力去我想去的地方旅游我还年轻 我还可以去奋斗
展开
-
Sparse Big Integer
大数取余#include#includeusing namespace std;typedef long long LL;const int maxn = 15;LL D[ maxn ], P[ maxn ], n, ans, sum, temp;LL Digit( int k ){ temp = 10; sum = 1; if( !k ){ return 1原创 2014-04-10 21:37:19 · 828 阅读 · 0 评论 -
Pi
题意:给你n个数字,让你求出其中任意两个数互质所占的比重,求出 ;根据题意6/ ^2 == (互质组数)/(总数C(N,2 ));其次,控制精度即可// File Name: 1059.cpp// Author: bo_jwolf// Created Time: 2014年02月03日 星期一 20时45分14秒#include#include#include#inclu原创 2014-02-03 21:00:23 · 932 阅读 · 0 评论 -
The Sultan's Successors
经典八皇后问题变形,求出存在权值的情况下的最大值;// File Name: 1033.cpp// Author: bo_jwolf// Created Time: 2014年02月03日 星期一 18时37分57秒#include#include#include#include#include#include#include#include#include#incl原创 2014-02-03 20:02:32 · 1682 阅读 · 0 评论 -
Sum It Up
// File Name: /home/bo_jwolf/soj/1030.cpp// Author: bo_jwolf// Created Time: 2014年02月03日 星期一 00时31分10秒#include#include#include#includeusing namespace std;#define maxn 1005int num[ maxn ], t原创 2014-02-03 01:54:56 · 1235 阅读 · 0 评论 -
Lotto
#include#include#includeusing namespace std;const int maxn = 1005;int num[ maxn ];int main(){ int n; while( cin >> n ){ if( !n ) break; for( int i = 0; i < n; ++i ){ cin >> num[ i原创 2014-01-28 23:52:22 · 1020 阅读 · 0 评论 -
Integer Inquiry
java大数加法import java.io.*;import java.math.*;import java.util.*;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub BigInteger sum, temp; sum =原创 2014-01-27 01:09:28 · 1404 阅读 · 0 评论 -
BlueEyes and Apples (I)
http://cstest.scu.edu.cn/soj/problem.action?id=1074//package bo_jwolf;import java.io.*;import java.math.*;import java.util.*;import java.text.*;public class Main { public static void main(St原创 2014-01-22 22:52:23 · 825 阅读 · 0 评论 -
Sum of product
先观察题目所给出的数据;10^6个数据;显然可知O( n ^ 2 )也会超时;先根据题解写出3重暴力算法用于验证;通过一定的推算;可以看出i和j确定时,j + 1~ n每一项的和均需要成上num[ i ] * num[ j ]求和就为题解,可优化至O(n ^ 2 ),通过预处理前m项的和,减少一次for循环;再进行优化;最简单的优化方式,同理,优化成分段求和相乘,即仿照O(原创 2013-12-04 12:01:33 · 1534 阅读 · 0 评论 -
Sum of xor
知道当i为偶数时,i ^ ( i + 1 ) ==1;这一条性质即可解决;那么只要统计当n是奇数还是偶数时匹配的满足条件的对数;当n为奇数时,那么除1 外,之后的有( n - 1 )/ 2个1取反;当n为偶数时,除了1和n外,其余也均可组成满足性质的数(n - 2 ) /2个;最后由于1 ^ 1 == 0 ; 1 ^ 0 == 1;求出结果即可; // File Name:原创 2013-12-04 11:46:55 · 982 阅读 · 0 评论 -
bo_jwolf不卖萌的第二场解题报告
链接:http://www.bnuoj.com/bnuoj/contest_show.php?cid=3347#info重开:http://www.bnuoj.com/bnuoj/contest_show.php?cid=3349A、最大整数http://blog.csdn.net/bo_jwolf/article/details/17034393B、Dolla原创 2013-11-30 00:42:16 · 1272 阅读 · 0 评论 -
hm 与 zx 的故事系列1/2/3
题意:从首位开始,找到在其后的最近的每一位的比它大的数;解析;使用栈(stack)进行存储满足条件的值;从最后一个数进行入栈,当栈顶数大于当前位置时跳出此时循环(即证明,在当前位置后有至少一个比它大的数,而栈顶的值是最近的),否则进行出栈(即此时栈内值小于当前位置,当最后栈为空时,代表在当前位置后没有比它大的值,所以当前位置的值为0),最后将此时位置的值压入栈底;执行到最后,即刻筛出满足题原创 2013-11-30 00:39:56 · 1632 阅读 · 0 评论 -
Dollars
换硬币;解析:由于数据不大,只有50$,先统一单位,同乘以20;将每一中金额都预处理出来DP基础题;第一维代表金额数,第二位代表使用的货币的种类数;转移方程为dp[ i ][ j ] += dp[ i ][ j - 1]; //使用了i种币种,一定能用 i- 1种币种的种类,因为多的都可以用币种1表示; if( i >= num[ j ] )//当当前金额大于原创 2013-11-30 00:21:02 · 896 阅读 · 0 评论 -
Knight Moves
BFS题意:给你棋盘上两点的坐标,按照中国象棋中马的走法,求出其最短的步数。// File Name: 1073.cpp// Author: bo_jwolf// Created Time: 2014年02月03日 星期一 21时24分46秒#include#include#include#include#include#include#include#include原创 2014-02-03 21:51:27 · 1322 阅读 · 0 评论 -
化学品问题 I
// File Name: 1119.cpp// Author: bo_jwolf// Created Time: 2014年02月05日 星期三 15时01分32秒#include#include#include#include#include#include#include#include#include#include#include#include#incl原创 2014-02-05 15:05:04 · 2148 阅读 · 0 评论 -
乘法运算
模拟题,非大数乘法运算;解析:细节比较多,我是用int型数组进行存储,如果用字符型存储,则需要考虑前缀0的情况; 一、当计算过程中出现运算结果为0时,此时0的位数为1,如果按照常规处理,长度(即位数)就为0; 二、当n和m中任意一个数为0,或者当m为个位数时,直接输出结果,不需要输出中间过程; 三、当n和m中出现负数时或者在运算过程中出现负数情况时,注意减去负数的长度;原创 2014-02-26 22:09:08 · 1233 阅读 · 0 评论 -
字符串倒序输出
读入空格跳出,其余不变;getchar()单字符读入判断直接TLE;用到scnaf( "%[^ ]", str );表示读入除‘ '以外的所有字符;#include#include#includeusing namespace std;const int maxn = 1005;char str[ maxn ], ch[ 5 ], k;int main(){原创 2014-02-26 20:39:14 · 1199 阅读 · 0 评论 -
求立方根
题目没多大意思,就是考虑问题不够,需要考虑为负数情况#include#include#includeusing namespace std;int main(){ double n; int Case; cin >> Case; while( Case-- ){ cin >> n; if( n >= 0 ) printf( "%.6lf\n", pow( n原创 2014-02-26 19:06:22 · 1244 阅读 · 0 评论 -
Sum( two pointers )
题意:给你一个数n和x( n 解析:two pointers求解; 快排+二分会TLE;// Sum.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#include#include#include#includeusing namespace std;const in原创 2014-02-26 18:53:18 · 988 阅读 · 0 评论 -
Square
题意:给定n个长度不定的火柴,现在问能否通过这些火柴组成一个正方形;解析:DFS搜索+剪枝;搜索过程中,当搜到某一满足要求的火柴时,判断是否为第4根长度为某一值;如果是,则搜索完成;否则,将单次搜索单边完成,将临时记录单边长度的sum归0。剪枝:一、当火柴总和不能被4整除时,一定不能组成正方形,因此直接输出“no”;二、当火柴中长度最长的一根火柴大于单边长度时,一定不能组成正方原创 2014-02-24 21:13:04 · 843 阅读 · 0 评论 -
Courses
二分匹配,匈牙利算法// File Name: 1186.cpp// Author: bo_jwolf// Created Time: 2014年02月06日 星期四 23时09分26秒#include#include#include#include#include#include#include#include#include#include#include#i原创 2014-02-06 23:27:34 · 1048 阅读 · 0 评论 -
Pass-Muraille
遍历一遍即可;#include#include#includeusing namespace std;const int maxn = 1005;int num[ maxn ], vis[ maxn ];struct node{ int x, y;}edge[ maxn ];int main(){ int Case, n, k, sx, sy, ex, ey; ci原创 2014-02-05 01:43:52 · 1527 阅读 · 0 评论 -
伊拉克
// File Name: 1093.cpp// Author: bo_jwolf// Created Time: 2014年02月04日 星期二 16时13分43秒#include#include#include#include#include#include#include#include#include#include#include#include#incl原创 2014-02-04 17:36:48 · 901 阅读 · 0 评论 -
欧几里得算法
x*a=1(mod n) , 转换成x*a + n * y = 1的形式,进行求解即可// File Name: 1092.cpp// Author: bo_jwolf// Created Time: 2014年02月04日 星期二 15时30分26秒#include#include#include#include#include#include#include#inc原创 2014-02-04 15:48:48 · 931 阅读 · 0 评论 -
Dick and Jane
根据题意,可以知道:janepuff和spot相差s,yertle和puff相差p,yertle和spot相差y岁,猫狗乌龟总和等于Dick和jane;那么由确定关系,设yertle为x岁,那么spot为x + y, puff为x + p;然后与S进行比较。// Author: bo_jwolf// Created Time: 2014年02月04日 星期二 00时01分59秒#i原创 2014-02-04 00:41:44 · 1848 阅读 · 0 评论 -
01串压缩编码
模拟// File Name: 1120.cpp// Author: bo_jwolf//Created Time: 2014年 02月 05日 星期三 15点07分2秒 #include#include#include#include#include#include#include#include#include#include#include#include原创 2014-02-05 16:57:27 · 2280 阅读 · 0 评论 -
最大整数
直接对string数组进行排序。需要注意的是,当string长度相等时,进行字典序排序,否则比较两字串进行组合的序列来排序;其中,str.c_str是将string类型转换成char,atoi是将char转换成int型;#include#include#include#include#include#include#includeusing namespace std;原创 2013-11-30 00:12:02 · 1042 阅读 · 0 评论 -
回文数 I
// 回文数 I.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;const int maxn = 105;int num1[ maxn ], num2[ maxn ];int Judge( int n ){ int k = 0; while( n原创 2013-11-14 13:07:20 · 832 阅读 · 0 评论 -
Maximum Submatrix
最小01矩阵,Dp求解;同求最大子矩阵和类似,采用行/列存储总长度/和;#include #include#includeusing namespace std;#define MAXN 2010int h[MAXN],r[MAXN],l[MAXN];int map[MAXN][MAXN];char str[2];int n,m;void all_0_matrix()原创 2013-11-22 20:14:52 · 1452 阅读 · 0 评论 -
Bachelor's song
题目不难,但使用string中的find判断是否存在,且返回首字母的位置;由于为字符串,所以只要首字母小于总长度减去查询字符长度即可;#include#include#include#includeusing namespace std;const int maxn = 10005;int main(){ string str; string::size_type posi原创 2013-11-22 20:12:36 · 1047 阅读 · 0 评论 -
上车人数
真心感觉题目很好,除了数学思想,还有考察仔细读题了没(输入是a,n,题目描述是n,a)题意:中文;解析:车站编号: 1 2 3 45 6 7上车人数 a ba + b a + 2*b2*a+3*b 3*a+5*b......下车人数 0 bb a + ba+2*b 2*a+3*b......剩下的人数 a a 2 * a原创 2013-11-17 20:39:54 · 1805 阅读 · 0 评论 -
BlueEyes' Schedule
// BlueEyes' Schedule.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#include#include#includeusing namespace std;const int maxn = 1005;struct node{ int x, y; bool operator<( const n原创 2013-11-17 13:40:39 · 1144 阅读 · 0 评论 -
扑克游戏
题目不难,但是仍然要想清除;易得赢得总数等于输的总数;例如输入的为B、C、D其次最大赢家数和最小赢家数一定为一组,因此,排好序,未知量只能是A或者E;即A和D一组或者B和E一组;然后分情况讨论满不满足即可;// 扑克游戏.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#include#includeusing原创 2013-11-18 13:43:20 · 946 阅读 · 0 评论 -
阶乘
// 阶乘.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#includeusing namespace std;#define Mod 100000//int _tmain(int argc, _TCHAR* argv[])int main(){ int n, m, Case; cin >> Case; whi原创 2013-11-17 18:35:47 · 1004 阅读 · 0 评论 -
Maximum Sum
#include#include#includeusing namespace std;const int maxn = 1005;int dp[ maxn ][ maxn ], num[ maxn ][ maxn ];int main(){ int n; while( cin >> n ){ memset( num, 0, sizeof( num ) ); for(原创 2013-11-16 02:50:37 · 801 阅读 · 0 评论 -
FatMouse的奶酪
// FatMouse的奶酪.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#includeusing namespace std;const int maxn = 1005;int num[ maxn ];//int _tmain(int argc, _TCHAR* argv[])int main(){ int原创 2013-11-17 01:38:36 · 1018 阅读 · 0 评论 -
Dollars
// Dollars.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#includeusing namespace std;const int maxn = 1005;int num[ 15 ] ={ 1, 2, 4, 10, 20, 40, 100, 200, 400, 1000, 2000 };原创 2013-11-16 14:48:58 · 882 阅读 · 0 评论 -
How many sums?
// How many sums.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#includeusing namespace std;const int maxn = 501;long long num[ maxn ] = { 1 };void Start(){ for( int i = 1;原创 2013-11-16 12:38:02 · 814 阅读 · 0 评论 -
littleken bg
// littleken bg.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include#include#include#includeusing namespace std;const int maxn = 205;int dp[ maxn ], num[ maxn ], weight[ maxn ], value[ maxn原创 2013-11-17 01:01:33 · 1127 阅读 · 0 评论 -
DNA排序
题目直接暴力,但是考察了稳定排序和非稳定排序,使用sort直接WA了(不稳定排序),而使用stable_sort就过了(稳定排序)#include#include#include#includeusing namespace std;const int maxn = 1005;int n;struct node{ char str[ maxn ]; int val;原创 2013-11-22 21:16:39 · 1717 阅读 · 0 评论 -
lentty's diary
理解为硬币拆分数即可;#include#includeusing namespace std;typedef long long LL;const int maxn = 35;LL num[ maxn ];void Start(){ num[ 0 ] = 1; num[ 1 ] = 1; for( int i = 2; i <= maxn; ++i ){ num[原创 2013-11-22 22:13:51 · 714 阅读 · 0 评论