8-14-小练

这次是我这组出题......我出的是B、C、D【虽然本来是想出的很难......╮(╯▽╰)╭但是,没找到AC1000+同时又让我想出的难题......SO...我出的真的不难= =】,荆红出的是A,从此不再出的是D......

A.HDU 1789    Doing Homework again

用贪心做~先按分数从大到小排,若分数相同则按天数从大到小排。排好后,从头开始扫描,扫到未标记的点,就进行标记(A),同时看A点后是否还有要在A点的天数之内一定要完成的作业,直到把A点的天数填完,若天数不够填,则证明哪一门作业无法按时完成~

代码:

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; class Node
{
public:
int x,y;
}a[]; bool comp(Node w,Node q)
{
if(w.x==q.x)
return w.y>q.y;
return w.x>q.x;
} int main()
{
int t,number,b[],i,j,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(a,,sizeof(a));
for(i=;i<n;i++)
scanf("%d",&a[i].y);
for(i=;i<n;i++)
scanf("%d",&a[i].x);
sort(a,a+n,comp);
number=;
memset(b,,sizeof(b));
for(i=;i<n;i++)
{
for(j=a[i].y;j>;j--)
if(b[j]==)
{
b[j]=;
break;
}
if(j==)
number+=a[i].x;
}
printf("%d\n",number);
}
return ;
}

B.HDU 1846    Brave Game        &&       C.HDU 1527    取石子游戏

这两道单独写的有:链接╮(╯▽╰)╭

D.POJ 1844     Sum

一道小清新的趣味数学题~【很有趣吧╮(╯▽╰)╭】

sum=1+2+3+4+...+i

当sum==s时,直接输出i;

当上一步无法做到时,则当第一次达到(sum-s)%2==0时,输出i即可~

证明【第二步,即此时sum达不到s,且sum>s】:

res=sum-s;

其实仔细想一想~很容易知道当改变sum里的+号时,sum永远是减去一个偶数【why?比如把sum中j前的加号改为减号,就是相当于sum-j-j,会减去2*j】~

SO~若res为奇数,无论如何改变sum中的加号,res永远都无法为0;只有res为偶数时,才有机会通过改变sum中的加号为0。因此当sum无法恰好达到s时,那么第一次达到res%2==0的i就是所求值~~~

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; int main()
{
int s,sum,i,res;
while(~scanf("%d",&s))
{
sum=;
res=;
for(i=;;i++)
{
sum+=i;
res=sum-s;
if(sum==s) break;
if(res> && res%==)
break;
}
printf("%d\n",i);
}
return ;
}

//memory:164KB   time:0ms

E.HDU 1142    A Walk Through the Forest

dijkstra+记忆化搜索

代码:

 #include<iostream>
#include<cstdio>
#include<string.h>
#define N 1010
#define INF 2000000000 using namespace std; int map[N][N],lowcost[N],visited[N],d[N],p[N]; void dijkstra(int s,int n)
{
memset(visited,false,sizeof(visited));
int i,j,k,min;
for(i=;i<=n;i++)
{
lowcost[i]=map[s][i];
}
d[s]=;
visited[s]=true;
for(i=;i<n;i++)
{
min=INF;
for(j=;j<=n;j++)
{
if(!visited[j]&&min>lowcost[j])
{
min=lowcost[j];
k=j;
}
}
d[k]=min;
visited[k]=true;
for(j=;j<=n;j++)
{
if(!visited[j]&&lowcost[j]>map[k][j]+d[k])
lowcost[j]=map[k][j]+d[k];
}
}
} int DFS(int s,int n)
{
if(p[s]) return p[s];
if(s==) return ;
int i,sum=;
for(i=;i<=n;i++)
{
if(map[s][i]<INF&&d[s]>d[i])
{
if(p[i]) sum=sum+p[i];
else sum=sum+DFS(i,n);
}
}
sum=sum+p[s];
p[s]=sum;
return p[s];
} int main()
{
int i,j,n,m,u,v,w;
while(cin>>n&&n)
{
cin>>m;
memset(p,,sizeof(p));
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
map[i][j]=(i==j?:INF);
}
}
for(i=;i<m;i++)
{
scanf("%d%d%d",&u,&v,&w);
map[u][v]=map[v][u]=w;
}
dijkstra(,n);
cout<<DFS(,n)<<endl;
}
return ;
}

//memory:4276KB    time:78ms

8-14-Exercise的更多相关文章

  1. [未完成]关于Eclipse4RCP书中内容总结

    原文地址http://www.vogella.com/tutorials/EclipseRCP/article.html Table of Contents 1. Eclipse 4 1.1. Wha ...

  2. 【Bell-Ford 算法】CLRS Exercise 24.1-4,24.1-6

    本文是一篇笔记,大部分内容取自 CLRS 第三版,第 24.1 节. Exercise 24.1-4 Modify the Bellman-Ford algorithm so that it sets ...

  3. (14)Why some people find exercise harder than others

    https://www.ted.com/talks/emily_balcetis_why_some_people_find_exercise_harder_than_others/transcript ...

  4. C - The C Answer (2nd Edition) - Exercise 1-4

    /* Write a program to print the corresponding Celsius to Fahrenheit table. */ #include <stdio.h&g ...

  5. MIT 6.828 JOS学习笔记5. Exercise 1.3

    Lab 1 Exercise 3 设置一个断点在地址0x7c00处,这是boot sector被加载的位置.然后让程序继续运行直到这个断点.跟踪/boot/boot.S文件的每一条指令,同时使用boo ...

  6. 《how to design programs》14章 再论自引用数据

    这是一个家族谱: ;child(define-struct child (father mother name date eyes)) #lang racket ;child (define-stru ...

  7. CMSC 216 Exercise #5

    CMSC 216 Exercise #5 Spring 2019Shell Jr (”Shellito”) Due: Tue Apr 23, 2019, 11:30PM1 ObjectivesTo p ...

  8. 软件测试:3.Exercise Section 2.3

    软件测试:3.Exercise Section 2.3 /************************************************************ * Finds an ...

  9. 《学习OpenCV3》第14章课后习题

    1.在一条含有 N 个点的封闭轮廓中,我们可以通过比较每个点与其它点的距离,找出最外层的点.(这个翻译有问题,而且这个问题是实际问题) a.这样一个算法的复杂度是多少? b.怎样用更快的速度完成这个任 ...

  10. 18 A GIF decoder: an exercise in Go interfaces 一个GIF解码器:go语言接口训练

    A GIF decoder: an exercise in Go interfaces  一个GIF解码器:go语言接口训练 25 May 2011 Introduction At the Googl ...

随机推荐

  1. <二> ASP.NET AutoPostBack

    当把Web控件的AutoPostBack属性设置为True时,自动回送功能被开启,ASP.NET使用客户端的 JavaScript来连接客户端和服务器端的代码.创建一个Web控件属性包含AutoPos ...

  2. CoreText实现图文混排之点击事件-b

    CoreText实现图文混排之点击事件 主要思路 我们知道,CoreText是基于UIView去绘制的,那么既然有UIView,就有 -(void)touchesBegan:(NSSet<UIT ...

  3. map(function, sequence)

    map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回: >>> lt = range( ...

  4. android 为组件添加contextMenu上下文菜单

    package com.example.fragmentNavigation2.fragment; import android.os.Bundle; import android.support.v ...

  5. 如何关闭win7的ps/2兼容鼠标(触屏版)

    买了一个新电脑联想ThinkPad E555 可是刚拿到是个win10 的系统,用习惯了win7,win0不太好用, 然后帮我刷成了win7,之后一切都好,性能也是让我很满意,但是却关不掉触控板,于是 ...

  6. 【HDOJ】1260 Tickets

    水DP,不过这道题目的数据好像有问题.24时制可表示范围是0~23,12时制可表示范围应为1~12.也就是说24点(即0点)其实表示为12:00:00am,而中午12:00:00其实表示为12:00: ...

  7. 应付期间 Payables Periods

    (N) AP > Accounting > Control payables periods Click [Period Status] column to Open.

  8. 结构体 fseg_inode_t;

    typedef byte fseg_inode_t;

  9. ☀【Node】处理文件上传

    Node入门 √http://www.nodebeginner.org/index-zh-cn.html Node.js中所用的fs.renameSync出错:Error: EXDEV, cross- ...

  10. CI 在nginx中出现404错误的解决方式

    因为你的nginx配置的是截取.php文件后缀的访问转发到PHP-CGI,而index.php和index.php/是不一样的.. 你在nginx里面写一句: if (!-e $request_fil ...