自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 作业二十八 单词拼接

#include #include #include using namespace std; struct node {  char s[31];  int first, last; }; node a[1001]; int degree_in[1001], degree_out[1001], m, order[1001]; bool used[1001]; int f(

2017-09-14 22:59:06 292

原创 作业 二十七 三国志

解题思路:Dijkstra算法(单源最短路径)和0-1背包,但是要考虑重边 #include #include #include #include using namespace std; vector > G[105]; const int INF = 1000000; int Dij[105]; int isVisit[105]; int City[105]; int

2017-09-11 15:27:58 379

原创 作业二十六 Arbitrage

#include #include #define max 31 double map[max][max]; int n,m,t=1; void floyd() {  int k,i,j,exist;  for(k=1;k  {   for(i=1;i   {    for(j=1;j    {     if(map[i][j]     {      map[i][

2017-09-08 18:50:54 314

原创 最短路径问题 POJ 3268

解题思路:最短路径只需要从x到i的最短路径代表他们返回的最短路径,然后将所有边反过来,再从x到i的最短路径代表他们来参加聚会的最短路径,这样对应相加找出一个最大值就可以了,当然其实不需要将所有边反过来,在dijkstra里面两次查询i到x最短路dis[i],和从x回到i的最短返回距离disf[i].然后找出和的最大值即可 #include #include #include #i

2017-09-06 21:06:48 332

原创 题目二十 士兵杀敌(二)

//用到树状数组,单纯用数组会超时 #include const int MAXN =1000005; int bit[MAXN]; int n,m,x,y; char c[10]; int lowbit(int x){ return x&(-x); } //sum(i): 求[1, i]的和; int sum(int i){ int s=0; while(i>0){ s

2017-08-05 17:16:46 515

原创 题目十九 汽车考察

#include #include #include #include #define max 10010 using namespace std; struct node {  int dist,fuel; }; node position[max]; int n,L,P; bool cmp(const node &a,const node &b) {  return

2017-08-03 09:16:49 332

原创 题目十八 独木舟上的旅行

#include #include using namespace std; int main(){ int t; scanf("%d",&t); while(t--){ int w,n; int a[300]; scanf("%d%d",&w,&n); for(int i=0;i scanf("%d",&a[i]); sort(a,a+n); int h=n; in

2017-08-01 08:10:32 266

原创 题目十六 贪心算法+优先队列

#include #include #include #include #include using namespace std; struct A {  int l;  int r;  bool operator   return r>a.r;  }; }cow[2505]; struct B {  int f;  int num; }bot[2505];

2017-07-27 10:51:28 498

原创 题目 十五 并查集

#include #include #include using namespace std; struct Point {  int x,y; }; const int MAXN = 1000+100; int parent[MAXN]; int N,d; Point p[MAXN]; bool isrep[MAXN]; void make_set() {  for

2017-07-25 18:12:22 285

原创 题目 14 食物链

#include using namespace std; int p[150005],r[150005]; void I(){ for(int i=0;i p[i]=i; r[i]=0; } } int find(int i){ if(p[i]!=i) p[i]=find(p[i]); return p[i]; } void unions(int x,int y){

2017-07-23 20:44:17 419

原创 题目 13中位数

#include #include #include using namespace std; int x[10005],y[10005]; int N; int p(const void *_a,const void *_b) {  int *a = (int *)_a;  int *b = (int *)_b;  return *a-*b; } int main()

2017-07-21 20:41:05 319

原创 题目十二 子序列长度

#include #include #include #include #include #include #include using namespace std; #define p 1200000 #define INF 0x3f3f3f3f int main() {  int dp[p];  int a[p];  int N,S,T,i,j;  scanf("

2017-07-18 18:33:25 253

原创 题目十一 Apple catching

#include #include int dp[1002][32],num[1002]; int max(int a,int b) {  return a>b?a:b; } int main() {  int T,W,i,j,ans;  scanf("%d%d",&T,&W);  for(i = 1;i  if(num[1]&1) dp[1][0] = 1;  ans

2017-07-16 23:16:59 289

原创 题目 10 划分数

#include int sum=0,n; int p(int a,int b) { if(a==0) sum++; int i; if(a>0) { for(i=n; i>=1; i--) { if(a>=i&&b { p(a-i,i); } } } } int main() { int N; scanf("%d",&N); while(N--) {

2017-07-14 23:29:20 466

原创 题目八 Sumsets

#include #define MAX 10e5+10 #define MOD 10e8 long long a[MAX]; void fun(); int main() {  int n;  fun();  while(scanf("%d",&n)!=EOF)  {   printf("%d\n",a[n]);  } } void fun() {  int i;

2017-07-10 22:07:34 254

原创 题目六 子串和

#include #include const int M=1000010; int a[M]; int main() { int t; scanf("%d",&t); while (t--) { int n; scanf("%d",&n); for (int i=0;i scanf("%d",&a[i]); int sum,Max; Max=sum=a[0]; f

2017-06-26 21:09:23 277

原创 题目五 喷水装置(二)

#include #include #include using namespace std; struct Equipment{ int x; int r; }; bool cmp(Equipment a, Equipment b){ return a.x } Equipment e[10005]; int main(){ int t; scanf("%d", &t

2017-06-25 11:50:04 368

原创 题目四 大数的阶乘

#include int main() {  int m;  int a[9000];//确保保存最终运算结果的数组足够大  int digit=1;//位数  int temp;//阶乘的任一元素与临时结果的某位的乘积结果  int i,j,carry;//carry:进位  scanf("%d",&m);  a[0]=1;//将结果先初始化为1  for(i=2;i  {

2017-06-22 16:14:13 315

原创 题目三 蛇形填数(二)

思路来源:蛇形填数(一) #include #include using namespace std; int a[100][100]; void main(){     int n,count,x,y;     cin>>n;     memset(a,0,sizeof(a));   //初始化为0     count = a[x=0][y=n-1] = 1;   

2017-06-20 21:07:46 275

原创 题目二 吝啬的国度

#include #include #include #define MAX 100001 using namespace std; vectora[MAX]; int b[MAX],n,s; void dfs(int x,int y){ for (int i = 0; i if (a[x][i] != y) dfs(a[x][i],b[a[x][i]]=x); re

2017-06-15 22:38:25 223

原创 作业一 数7

题目:数7是一个简单的饭桌游戏,有很多人围成一桌,先从任意一人开始数数,1、2、3……那样数下去,逢到7的倍数(7、14、21……)和含有7的数字(17、27……)必须以敲桌子代替。如果有谁逢7却数出来了,就要接受惩罚。小明觉得这个游戏太简单了,于是对它做出了改进,那就是每逢到素数的时候就以敲桌子代替,并且数数的方向发生改变,而且最开始的那个人可以从1到10000中选一个合数,开始数数。假设现在有

2017-06-11 21:58:17 1097

空空如也

空空如也

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

TA关注的人

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