Test on 11/14/2016
@kaike
第一题太简单我不想说什么
来说第二题。
1.小x的旅行
(travel.pas/c/cpp)
【问题描述】
小x大学毕业后,进入了某个公司做了高层管理,他每年的任务就是检查这个公司在全国各地N个分公司的各种状况,每个公司都要检查一遍,且只能检查一遍,也就是说这N个地方只能也必须去一次。
当然,小x每年可以选择从任意一个城市开始,任意一个城市结束。
现在给出这N个公司所在地任意两个地点飞机票的价格,现在小x为了给公司省下交通费,需要设计一个程序,来计算一下如何花费最低能够完成任务。
作为一名有过信息学竞赛经历的有志青年,小x给自己的路线又规定了一个约束条件:如果要访问编号为K的城市,那么编号比K小的所有城市或者在访问K之前访问,或者在访问K之后访问。这个条件也必须遵守。
比如:如果有3个城市:2 1 3和 3 1 2 的顺序都是合法的,但是 1 3 2的顺序就是非法的,因为比3小的1在3之前,2在3之后,和小x的要求冲突。
【输入】
第一行:一个整数N。
接下来N行,每行N个整数。第i行第j列的值a[i][j]表示第i个城市到第j个城市飞机票的价格。保证这N个整数在[0..1000]之间。
【输出】
一个整数,表示满足要求的最小花费。
【输入输出样例1】
travel.in |
travel.out |
3 0 5 2 5 0 4 2 4 0 |
7 |
【输入输出样例2】
travel.in |
travel.out |
4 0 15 7 8 15 0 16 9 7 16 0 12 8 9 12 0 |
31 |
【样例解释】顺序为3, 1, 2, 4 或者 4, 2, 1, 3.
【数据范围】
30% 数据保证N<=10
50% 数据保证 N<=20
100% 数据保证 N<=1500
第一眼看上去:咦这不是个最小生成树?
后来觉得不对,应该算出顶点和图的关系...后来我就不会写了
生成顶点了太多..不会写
后来看他们都写得dfs,dfs现在刚复习完....
看题解,原来如此简单。
反着推,从1开始,这个我考试的时候也想到了。不同的是枚举左端点和右端点
根据两个城市之间的关系+记忆化搜索,可以A。
不加的话大概能到70分。
然而苦于思维打不开想不到QAQ
1 /* 2 by kaike 3 11/14/2016 4 */ 5 #include<iostream> 6 #include<algorithm> 7 #include<cstdio> 8 using namespace std; 9 #define FILE "travel" 10 const int MAXN=1510; 11 int mo[MAXN][MAXN],a[MAXN][MAXN],n; 12 int dp(int l,int r) 13 { 14 if(mo[l][r]) return mo[l][r]; 15 int next=max(l,r)+1; 16 if(next==n) return 0; 17 return mo[l][r]=min(a[next][l]+dp(next,r), 18 a[r][next]+dp(l,next)); 19 } 20 int main() 21 { 22 //freopen(FILE".in","r",stdin); 23 //freopen(FILE".out","w",stdout); 24 cin>>n; 25 for(int i=0;i<n;i++) 26 for(int j=0;j<n;j++) 27 cin>>a[i][j]; 28 cout<<dp(0,0)<<endl; 29 return 0; 30 }
哈哈哈
第三题是树状数组求和。
它每循环一次,就是找二进制的1,同时ans++;
x被计算的次数=右端点x的个数+左端点为x+1的个数 = x+n-x = n
这样就可以从1枚举到n并对bitcount(i)求和。
70分到手。
要A的算法是要用数位DP?并不会。
1 /* 2 by kaike 3 11/14/2016 4 */ 5 #include<iostream> 6 #include<algorithm> 7 using namespace std; 8 #define FILE "bit" 9 int map[51000],t,x; 10 const int ss=1000000007; 11 int lowbit(int x) 12 { 13 return x&(-x); 14 } 15 int sum(int x) 16 { 17 int ans=0; 18 while(x>0) 19 { 20 ans++; 21 x-=lowbit(x); 22 } 23 return ans; 24 } 25 int main() 26 { 27 freopen(FILE".in","r",stdin); 28 freopen(FILE".out","w",stdout); 29 cin>>t; 30 for(int i=1;i<=t;i++) 31 { 32 cin>>x; 33 long long s=0; 34 for(int j=1;j<=x;j++) 35 s+=(sum(j)*x)%ss; 36 cout<<s<<endl; 37 } 38 return 0; 39 }
懒到不想打标题
转载于:https://www.cnblogs.com/Kaike/p/6063085.html
Test on 11/14/2016相关推荐
- Ubuntu 16.04 RTL8111/8168/8411 不能上网 经常断网解决办法 Author 时鹏亮 | 11/18/2016 = =这奇葩情况发生在从14.04升级到16.04之后,开始以
Ubuntu 16.04 RTL8111/8168/8411 不能上网 经常断网解决办法 修改了其中wget的部分: 替换wget 这一段: 去这里下载 : https://github.com/mt ...
- U3D笔记11:47 2016/11/30-15:15 2016/12/19
U3D笔记11:47 2016/11/30-15:15 2016/12/19 技术BLOG:http://www.unity.5helpyou.com/2373.html#comment-43108 ...
- VS2010-2015对C++11/14/17特性的支持
VS2010-2015对C++11/14/17特性的支持 C++11 功能列表 Visual C++ 实现了 C++11 核心语言规范 中的绝大多数功能.许多 C++14 库功能和某些为 C++17 ...
- 【晒出你的第83行代码】阿里研究员福贝,用一个小演示程序来解释一下 C++11/14 里的 closure 是可以多么的“爽”...
为什么80%的码农都做不了架构师?>>> 摘要: 在五四青年节之际,社区发起了来晒晒属于你的"第83行"的活动,活动中邀请业界的大牛.大神们来晒代码或者Re ...
- 2018.11.14成立我的博客
2018.11.14成立我的博客 转载于:https://www.cnblogs.com/zengxx/p/9957509.html
- linux之让终端支持C++11/14编译cpp文件
1 问题 我们的项目很多智能指针,但是我linux的终端肯定不支持C++11/14, 我们平时都是用的下面的命令编译c++文件 g++ -g file.cpp -o file r 如果是用c++11 ...
- 算法导论第三版第十一章11.1-4
算法导论第三版第十一章11.1-4 我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典.开始时,该数组中可能包含一些无用信息,但要堆整个数组进行初始化时不太实际的,因为该数组的规模太大 ...
- 训练日志 2018.11.14
这周的计划是 Ford.SPFA 看完了,2-SAT 看了一半,并查集没按计划完成,但把最小生成树看了,还算可以... 下周 2-SAT.次短路径.并查集... 今晚打比赛..菜的一批...做了 4. ...
- C++11/14学习(二)类型推导
C++11/14学习(二)类型推导 C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,让编译器来操心变量的类型. 这使得 C++ 也具有了和其他现代编程语言一样,某种意义 ...
最新文章
- UNIX环境高级编程第三章
- sqlserver2008 获取最后插入的id_Python3操作SQL Server2008数据库
- Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
- python程序的书写特点_不一样的Python代码写法,让你写出一手漂亮的代码
- android 支付宝月账单 统计图_记账其实很简单,用微信、支付宝就够了!
- SlickEdit 2010的破解方法
- JAVA中File转MultiparFile
- java 的 provider_Java里的Provider是什么?
- easyexcel多个sheet导入_Easypoi实现excel多sheet表导入导出功能
- 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
- 【面试题】-java分布式及微服务面试题汇总
- 供应链金融你了解多少?
- 利用IDM下载QQ群文件
- HyperGBM之元学习器(meta_learner)
- PMbok 全书串讲
- 融云 CEO 董晗:国产化进程加速,助推政企数智办公平台深化发展
- softer-nms论文学习详解(Bounding Box Regression with Uncertainty for Accurate Object Detection)
- Outpost Firewall Pro
- 星速平台:煤炭板块震荡上扬 昊华能源涨停
- 2017关于计算机的知识,计算机基础知识及答案
热门文章
- codevs地鼠游戏(贪心)
- [RouterOS] ROS对接碧海威或PA等流控实现完美流控详细教程(附脚本全免费)
- 与html相关的知识点整理
- HDU 4023 (博弈 贪心 模拟) Game
- 树莓派(Raspberry Pi)修改时区
- SQLite主键自增需要设置为integer PRIMARY KEY
- 【C++算法与数据结构学习笔记------用循环数组实现队列】
- python基础(十二):正则、re模块、贪婪和非贪婪
- 阿里Java开发规约(2)
- CentOS6.8下使用yum安装mysql,并远程登陆mysql