@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相关推荐

  1. 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 ...

  2. 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 ...

  3. VS2010-2015对C++11/14/17特性的支持

    VS2010-2015对C++11/14/17特性的支持 C++11 功能列表 Visual C++ 实现了 C++11 核心语言规范 中的绝大多数功能.许多 C++14 库功能和某些为 C++17 ...

  4. 【晒出你的第83行代码】阿里研究员福贝,用一个小演示程序来解释一下 C++11/14 里的 closure 是可以多么的“爽”...

    为什么80%的码农都做不了架构师?>>>    摘要: 在五四青年节之际,社区发起了来晒晒属于你的"第83行"的活动,活动中邀请业界的大牛.大神们来晒代码或者Re ...

  5. 2018.11.14成立我的博客

    2018.11.14成立我的博客 转载于:https://www.cnblogs.com/zengxx/p/9957509.html

  6. linux之让终端支持C++11/14编译cpp文件

    1  问题 我们的项目很多智能指针,但是我linux的终端肯定不支持C++11/14, 我们平时都是用的下面的命令编译c++文件 g++ -g file.cpp -o file r 如果是用c++11 ...

  7. 算法导论第三版第十一章11.1-4

    算法导论第三版第十一章11.1-4 我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典.开始时,该数组中可能包含一些无用信息,但要堆整个数组进行初始化时不太实际的,因为该数组的规模太大 ...

  8. 训练日志 2018.11.14

    这周的计划是 Ford.SPFA 看完了,2-SAT 看了一半,并查集没按计划完成,但把最小生成树看了,还算可以... 下周 2-SAT.次短路径.并查集... 今晚打比赛..菜的一批...做了 4. ...

  9. C++11/14学习(二)类型推导

    C++11/14学习(二)类型推导 C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,让编译器来操心变量的类型. 这使得 C++ 也具有了和其他现代编程语言一样,某种意义 ...

最新文章

  1. UNIX环境高级编程第三章
  2. sqlserver2008 获取最后插入的id_Python3操作SQL Server2008数据库
  3. Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
  4. python程序的书写特点_不一样的Python代码写法,让你写出一手漂亮的代码
  5. android 支付宝月账单 统计图_记账其实很简单,用微信、支付宝就够了!
  6. SlickEdit 2010的破解方法
  7. JAVA中File转MultiparFile
  8. java 的 provider_Java里的Provider是什么?
  9. easyexcel多个sheet导入_Easypoi实现excel多sheet表导入导出功能
  10. 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
  11. 【面试题】-java分布式及微服务面试题汇总
  12. 供应链金融你了解多少?
  13. 利用IDM下载QQ群文件
  14. HyperGBM之元学习器(meta_learner)
  15. PMbok 全书串讲
  16. 融云 CEO 董晗:国产化进程加速,助推政企数智办公平台深化发展
  17. softer-nms论文学习详解(Bounding Box Regression with Uncertainty for Accurate Object Detection)
  18. Outpost Firewall Pro
  19. 星速平台:煤炭板块震荡上扬 昊华能源涨停
  20. 2017关于计算机的知识,计算机基础知识及答案

热门文章

  1. codevs地鼠游戏(贪心)
  2. [RouterOS] ROS对接碧海威或PA等流控实现完美流控详细教程(附脚本全免费)
  3. 与html相关的知识点整理
  4. HDU 4023 (博弈 贪心 模拟) Game
  5. 树莓派(Raspberry Pi)修改时区
  6. SQLite主键自增需要设置为integer PRIMARY KEY
  7. 【C++算法与数据结构学习笔记------用循环数组实现队列】
  8. python基础(十二):正则、re模块、贪婪和非贪婪
  9. 阿里Java开发规约(2)
  10. CentOS6.8下使用yum安装mysql,并远程登陆mysql