8-14-Exercise
8-14-小练
这次是我这组出题......我出的是B、C、D【虽然本来是想出的很难......╮(╯▽╰)╭但是,没找到AC1000+同时又让我想出的难题......SO...我出的真的不难= =】,荆红出的是A,从此不再出的是D......
A.HDU 1789 Doing Homework again
用贪心做~先按分数从大到小排,若分数相同则按天数从大到小排。排好后,从头开始扫描,扫到未标记的点,就进行标记(A),同时看A点后是否还有要在A点的天数之内一定要完成的作业,直到把A点的天数填完,若天数不够填,则证明哪一门作业无法按时完成~
代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 7 class Node 8 { 9 public: 10 int x,y; 11 }a[1010]; 12 13 bool comp(Node w,Node q) 14 { 15 if(w.x==q.x) 16 return w.y>q.y; 17 return w.x>q.x; 18 } 19 20 int main() 21 { 22 int t,number,b[1010],i,j,n; 23 scanf("%d",&t); 24 while(t--) 25 { 26 scanf("%d",&n); 27 memset(a,0,sizeof(a)); 28 for(i=0;i<n;i++) 29 scanf("%d",&a[i].y); 30 for(i=0;i<n;i++) 31 scanf("%d",&a[i].x); 32 sort(a,a+n,comp); 33 number=0; 34 memset(b,0,sizeof(b)); 35 for(i=0;i<n;i++) 36 { 37 for(j=a[i].y;j>0;j--) 38 if(b[j]==0) 39 { 40 b[j]=1; 41 break; 42 } 43 if(j==0) 44 number+=a[i].x; 45 } 46 printf("%d\n",number); 47 } 48 return 0; 49 }
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=0;res=0;for(i=1;;i++){sum+=i;res=sum-s;if(sum==s) break;if(res>0 && res%2==0)break;}printf("%d\n",i);}return 0; }
//memory:164KB time:0ms
E.HDU 1142 A Walk Through the Forest
dijkstra+记忆化搜索
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<string.h> 4 #define N 1010 5 #define INF 2000000000 6 7 using namespace std; 8 9 int map[N][N],lowcost[N],visited[N],d[N],p[N]; 10 11 12 void dijkstra(int s,int n) 13 { 14 memset(visited,false,sizeof(visited)); 15 int i,j,k,min; 16 for(i=1;i<=n;i++) 17 { 18 lowcost[i]=map[s][i]; 19 } 20 d[s]=0; 21 visited[s]=true; 22 for(i=1;i<n;i++) 23 { 24 min=INF; 25 for(j=1;j<=n;j++) 26 { 27 if(!visited[j]&&min>lowcost[j]) 28 { 29 min=lowcost[j]; 30 k=j; 31 } 32 } 33 d[k]=min; 34 visited[k]=true; 35 for(j=1;j<=n;j++) 36 { 37 if(!visited[j]&&lowcost[j]>map[k][j]+d[k]) 38 lowcost[j]=map[k][j]+d[k]; 39 } 40 } 41 } 42 43 int DFS(int s,int n) 44 { 45 if(p[s]) return p[s]; 46 if(s==2) return 1; 47 int i,sum=0; 48 for(i=1;i<=n;i++) 49 { 50 if(map[s][i]<INF&&d[s]>d[i]) 51 { 52 if(p[i]) sum=sum+p[i]; 53 else sum=sum+DFS(i,n); 54 } 55 } 56 sum=sum+p[s]; 57 p[s]=sum; 58 return p[s]; 59 } 60 61 int main() 62 { 63 int i,j,n,m,u,v,w; 64 while(cin>>n&&n) 65 { 66 cin>>m; 67 memset(p,0,sizeof(p)); 68 for(i=1;i<=n;i++) 69 { 70 for(j=1;j<=n;j++) 71 { 72 map[i][j]=(i==j?0:INF); 73 } 74 } 75 for(i=0;i<m;i++) 76 { 77 scanf("%d%d%d",&u,&v,&w); 78 map[u][v]=map[v][u]=w; 79 } 80 dijkstra(2,n); 81 cout<<DFS(1,n)<<endl; 82 } 83 return 0; 84 }
//memory:4276KB time:78ms
转载于:https://www.cnblogs.com/teilawll/p/3260172.html
8-14-Exercise相关推荐
- 【C++】关联容器学习记录
STL六大组件关系 Containe通过Allocator取得数据存储空间,Algorithm通过Iterator存取Container,Functor内容可以协助Algorithm完成不同的策略变化 ...
- Eloquent JavaScript 笔记 十九:Node.js
1. Background 可以略过. 2. Asynchronicity 讲同步和异步的基本原理,可以略过. 3. The Node Command 首先,访问 nodejs.org 网站,安装no ...
- Python 模块大全(很详细!)
转载:.... Python的模块大全,很全,有详细介绍! 另外附Python两个教程 1. Python详细教程(廖雪峰的官方网站,语言简洁!) 2. Python 进阶教程 (Vamei) 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 ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 笨办法学 Python · 续 练习 14:双链表
练习 14:双链表 原文:Exercise 14: Double Linked Lists 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 以前的练习可能需要花一段时间才能完成, ...
- symmetry methods for differential equations,exercise 1.4
tex文档: 1 \documentclass[a4paper, 12pt]{article} % Font size (can be 10pt, 11pt or 12pt) and paper si ...
- Lesson 13-14 How often do you exercise?
一 Words 1 stuck in 卡在 e.g. Many over 30s feel stuck in a financial rut发情期,车辙. 很多超过30岁的人都觉得自己的经济状况很难有 ...
- Matlab笔记(台大郭彦甫14课)
台大郭彦甫老师Matlab教程 Applications of Matlab in Engineering https://www.bilibili.com/video/BV1GJ41137UH?p= ...
- 台大郭彦甫-Matlab软件学习课堂exercise示例(第二讲)
台大郭彦甫-Matlab软件学习课堂exercise示例 (仅供参考) 第二讲 基本操作与矩阵输入 (P6 exercise) >> cos(((1+2+3+4)^3/5)^(1/2))a ...
最新文章
- FFT镜头效果的新进展
- Windows XP安装Python,最高支持到3.4.4,后续版本不支持
- 百度搜索结果 转换_如何让图片出现在百度搜索结果里出现?
- linux centos lamp,Centos下搭建LAMP
- matlab arima模型定阶,ARIMA模型预测问题
- 简单话题:LED呼吸灯和串口LED指示灯
- koa2后端和php后端,vue+koa2+mongo前后端分离restful,配置和部署到云
- 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统
- java读取欧姆龙plc,寄存器读取命令响应超时 欧姆龙plc寄存器读取命
- Linux打印服务-CUPS的安装、配置和使用
- 明哥,给大学生的几点建议
- 分享 那些经典电影的经典台词
- 递归例题讲解 一本通1215:迷宫 答案解析
- px5 连接充电器是充电指示灯熄灭
- 外贸必备通讯工具之一,AntTone 的介绍及使用教程
- ssm基于Android的自来水收费系统APP-计算机毕业设计
- 亚马逊ec2 删除实例_学习使用Amazon EC2实例部署php应用程序
- 功耗大好还是小好_功率因数大好还是小好?功率因数低有什么危害
- android仿iphone的时间轮的工具demo,利用swiper仿iphone时间设置滚轮控件(示例代码)...
- java 猫_猫,狗叫JAVA
热门文章
- sqlalchemy exists 子查询_学好ORM框架SQLAlchemy面试必问
- sublime php 乱码,sublime打开TXT文件乱码的问题
- volumill插件下载网盘地址_IDM也可以下载磁力链接?(附资源)全程30Mb/s!你不知道的那些IDM妙用!...
- 魅族 虚拟位置服务状态:未运行_神车道具送不停 魅族17x跑跑卡丁车礼盒开启预约...
- C++知识点60——非类型模板参数
- Opencv开闭运算去除反光噪声
- Halcon模板轮廓坐标点获取
- Django 前台通过json 取出后台数据
- swift--添加新手引导页
- Hadoop:HDFS NameNode内存全景