第十九周 1.4---1.10

终于考完了

----

诶--- --- ---

1.7

cf500c

http://codeforces.com/problemset/problem/500/C

补去年的题了......

懒成狗了......

给出 n 本书的重量,m 天,还有这m 天每天要看哪一本书,然后每次看一本书的时候,是将这本书上面的书拿走,再拿走要看的书,再把挪走的那一摞书放回来

确定书最开始的顺序,使得搬的书的重量最小

按照看书的先后顺序来放,没有出现过的书就不管

假设现在要看的书是 x ,它的上面有 m 这么重的书

现在需要搬 m

如果不是按照看书的顺序来放的放,假设现在有一个m0在x 的上面

现在需要搬动 m + m0 > m

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6
 7 const int maxn = 1005;
 8 int a[maxn],w[maxn];
 9 int n,m;
10 int b[maxn],vis[maxn];
11 int c[maxn];
12
13 void solve(){
14     int cnt = 0;
15     memset(vis,0,sizeof(vis));
16     memset(c,0,sizeof(c));
17     for(int i = 1;i <= m;i++){
18         if(!vis[a[i]]){
19             b[++cnt] = a[i];
20             vis[a[i]] = 1;
21         }
22     }
23
24   /*  for(int i = 1;i <= cnt;i++){
25         printf("b[%d] = %d\n",i,b[i]);
26     }*/
27
28     int ans = 0;
29     for(int i = 1;i <= m;i++){
30         int pos = 0;
31         for(int j = 1;j <= cnt;j++){
32             if(b[j] == a[i]) {
33                 pos = j;
34                 break;
35             }
36             ans += w[b[j]];
37           //  printf("--- i = %d  b[%d] = %d\n",i,j,b[j]);
38         }
39         memcpy(c,b,sizeof(b));
40         for(int j = 1;j < pos;j++){
41             b[j+1] = c[j];
42         }
43         b[1] = a[i];
44
45        /* for(int j = 1;j <= cnt;j++){
46             printf("  %d  ",b[j]);
47         }
48         printf("\n");*/
49     }
50     printf("%d\n",ans);
51 }
52
53 int main(){
54     while(scanf("%d %d",&n,&m) != EOF){
55         for(int i = 1;i <= n;i++) scanf("%d",&w[i]);
56         for(int i = 1;i <= m;i++) scanf("%d",&a[i]);
57         solve();
58     }
59     return 0;
60 }

时间: 2024-10-07 05:50:04

第十九周 1.4---1.10的相关文章

第十九周 1.3-1.9

1.3 补个BC. HDU 5608 function 题解这么说.复杂度不会. 1 #include <iostream> 2 #include <cstdio> 3 #include <map> 4 using namespace std; 5 typedef long long LL; 6 const LL mod = 1e9 + 7; 7 const LL maxn = 1e6 + 10; 8 map<LL,LL> M; 9 LL t[maxn];

第十九周 银行系统(链表、二进制、业务明细)

基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序,能用文本文件存取数据(如示例中给出的技术): 拓展方向: 序号 加分项目 细       则 1 改变Bank类中用户信息的存储方式 用对象的指针数组存储(User *user[upNum]) 或者用动态数组(User *users,空间用new分配) 2 功能扩充 按银行实际业务的要求,增加User类中的数据成员,能够记录身份证号.家庭住址等信息,并在相关业务中使用这些数据. 记录用户的每一笔业务,

hiho一下 第五十九周 题目1 : Performance Log

题目1 : Performance Log 时间限制:8000ms 单点时限:1000ms 内存限制:256MB 描述 You are given a txt file, which is performance logs of a single-threaded program. Each line has three columns as follow: [Function Name] [TimeStamp] [Action] [FunctionName] is a string of le

hiho一下 第四十九周 题目1 : 欧拉路&#183;一【无向图 欧拉路问题】

题目1 : 欧拉路·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找到最后的宝藏.现在他们控制的角色来到了一个很大的湖边.湖上有N个小岛(编号1..N),以及连接小岛的M座木桥.每座木桥上各有一个宝箱,里面似乎装着什么道具. 湖边还有一个船夫,船夫告诉主角.他可以载着主角到任意一个岛上,并且可以从任意一个岛上再载着主角回到湖边,但是主角只有一次来回的机会.同时船夫告诉主

[hihoCoder] 第四十九周: 欧拉路&#183;一

题目1 : 欧拉路·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找到最后的宝藏.现在他们控制的角色来到了一个很大的湖边.湖上有N个小岛(编号1..N),以及连接小岛的M座木桥.每座木桥上各有一个宝箱,里面似乎装着什么道具. 湖边还有一个船夫,船夫告诉主角.他可以载着主角到任意一个岛上,并且可以从任意一个岛上再载着主角回到湖边,但是主角只有一次来回的机会.同时船夫告诉主

hihocoder 第二十九周 堆优化的Prim算法

又深刻理解了一遍prim和dijkstra算法,感觉蛮棒的~ 第一次自己用邻接表写,just soso~ 啊哈~ 一开始被优先队列,重载运算符给卡住了~ 蛋疼~ 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<string> 6 #include<queue> 7 #include<algorit

hiho一下 第四十九周 欧拉路&#183;一

[题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho最近在玩一个解密类的游戏,他们需要控制角色在一片原始丛林里面探险,收集道具,并找到最后的宝藏.现在他们控制的角色来到了一个很大的湖边.湖上有N个小岛(编号1..N),以及连接小岛的M座木桥.每座木桥上各有一个宝箱,里面似乎装着什么道具. 湖边还有一个船夫,船夫告诉主角.他可以载着主角到任意一个岛上,并且可以从任意一个岛上再载着主角回到湖边,但是主角只有一次来回的机会

hiho一下 第二十九周 最小生成树三&#183;堆优化的Prim算法【14年寒假弄了好长时间没搞懂的prim优化:prim算法+堆优化 】

题目1 : 最小生成树三·堆优化的Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生了一个疑问,究竟这样的算法在稀疏图上比Prim优化之处在哪里呢? 提示:没有无缘无故的优化! 输入 每个测试点(输入文件)有且仅有一组测试数据. 在一组测试数据中: 第1行为2个整数N.M,表示小Hi拥有的城市数量和小Hi筛选出路线的条数. 接下来的M行,每行描述一条路线,其中第i行为3个整数N1_

大三上学期十九周总结

本周是大三上半学期的最后一周,也是考试周.本次周三.周四考试科目数字信号和计算机网络.前两天进行最终的复习,准备考试.完成后,进行假期规划. 下周开始进行招就处的项目开发.初步准备使用spring boot+mybatis进行开发.学习码云开源工具mybatis plus,简化开发流程.预计开发周期将会是半个月.教学弟使用POI进行导入导出.找到蓝桥杯的算法学习视频进行学习.准备看剑指offer这本书.最起码开个头. 推荐一个临时接受验证码的网站:https://www.pdflibr.com/