POJ 水题若干
POJ 3176 Cow Bowling
链接: http://poj.org/problem?id=3176
这道题可以算是dp入门吧。可以用一个二维数组从下向上来搜索从而得到最大值。
优化之后可以直接用一维数组来存。(PS 用一维的时候要好好想想具体应该怎么存,还是有技巧的)
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
int dp[355]={0};
int main ()
{
int n,i,j,s=0,a;
cin>>n;
for (i=1; i<=n; i++)
for (j=i; j>=1; j--)
{
cin>>a;
dp[j]=(dp[j]>dp[j-1]?dp[j]:dp[j-1])+a;
//用一维数组更新的时候必须时必须保证更新后的元素在之后同一层dp中不再用到。
if (s<dp[j]) s=dp[j];
}
cout<<s<<endl;
return 0;
}
/*
int map[355][355];
int main ()
{
int n,i,j;
cin>>n;
for (i=0; i<n; i++)
for (j=0; j<=i; j++)
cin>>map[i][j];
for (i=n-2; i>=0; i--)
for (j=0; j<=i; j++)
map[i][j]+=(map[i+1][j]>map[i+1][j+1]?map[i+1][j]:map[i+1][j+1]);
//这是开二维数组,从下向上dp
cout<<map[0][0]<<endl;
return 0;
}
*/
POJ 1674 Sorting by Swapping
链接: http://poj.org/problem?id=1674
题意是有一串数字,问你最少交换多少次可以得到从小到大的排序
我们知道最少交换次数可以用选择排序来求得。但是这道题如果用选择排序的话,必然超时。
其实这道题还是暗藏玄机的。因为n个数正好是1到n。所以如果a[i]==i 就表示该位置已经排好了
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#define p 3.1415927
using namespace std;
int a[10010]= {0};
int main ()
{
int t,n,i,j;
cin>>t;
while(t--)
{
int s=0;
cin>>n;
for (i=0; i<n; i++)
scanf("%d",a+i);
for (i=0; i<n-1; i++)
if (a[i]!=i+1)//这道题如果用选择排序的话。10000^2。必然超时
//这道题n个数是从1到n。所以加这个判断会适当减时
{
for (j=i+1; j<n; j++)
if (a[j]==i+1)
{
int temp=a[j];
a[j]=a[i];
a[i]=temp;
s++;
}
}
cout<<s<<endl;
}
return 0;
}
POJ 2346 Lucky Tickets
链接: http://poj.org/problem?id=2346
这道题就是一个n位数,左半边相加和有半边相加相等为一个组合,问有多少组合。n位数可以有前导零
由于n最大为10.。想都没想直接打表了。。
不过看discuss里面说这道题可以dp。好神。不过想想也是
这道题还应该再思考思考
//这道题有待提高 用DP来做 以后试试
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main ()
{
int a[6]={0,10,670,55252,4816030,432457640};
int n;
cin>>n;
cout<<a[n/2]<<endl;
}
这几天做了挺多水题的。为了增快阅读速度吧。还有就是要加快敲代码速度。
这里面几道题目都是相对有点意思的。
POJ 水题若干的更多相关文章
- POJ 水题(刷题)进阶
转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...
- 【POJ水题完成表】
题目 完成情况 poj1000:A+B problem 完成 poj1002:电话上按键对应着数字.现在给n个电话,求排序.相同的归一类 完成 poj1003:求最小的n让1+1/2+1/3+...+ ...
- poj 水题系列
题目:http://poj.org/problem?id=3006 筛选法求素数 #include <iostream> #include<cstdio> #include&l ...
- POJ水题 1298
#include "stdafx.h" #include <iostream> #include <string> using namespace std; ...
- POJ 1488 Tex Quotes --- 水题
POJ 1488 题目大意:给定一篇文章,将它的左引号转成 ``(1的左边),右引号转成 ''(两个 ' ) 解题思路:水题,设置一个bool变量标记是左引号还是右引号即可 /* POJ 1488 T ...
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- POJ 3984 - 迷宫问题 - [BFS水题]
题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- [POJ 1000] A+B Problem 经典水题 C++解题报告 JAVA解题报告
A+B Problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 311263 Accepted: 1713 ...
随机推荐
- MySQL性能优化的最佳20+套经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操 ...
- innobackupex:Error:xtrabackup child process has died at /usr/bin/innobackupex
使用innobackupex进行数据库备份,报如下错误:innobackupex --compress --parallel=4 --user=root --password=yoon /expo ...
- WPF-控件-ListView
<Window x:Class="DataTemplate2.MainWindow" xmlns="http://schemas.microsoft.com/win ...
- Mininet VM设置笔记
Mininet VM是为了加快Mininet安装,而且可以很容易在linux平台上运行. VM运行在Windows,Mac,Linux,通过VMware.VirtualBox,QEMU和KVM. 下载 ...
- 应用层HTTP,FTP,TFTP,TELNET,DNS,EMAIL
ip路由选择 crc校验 数据包转发子模块 ttl值 ip输出队列/输入队列icmp报文 路由表 ip是网络层 tcp是传输层 应用层表示层会话层传输层网络层链路层物理层 网卡工作在链路层 网卡是工作 ...
- Ubuntu中NetBeans C/C++配置、编译
系统环境:Ubuntu 9.04软件环境:NetBeans 6.7.1 C/C++ .JDK1.6.0_16本次目的:完成NetBeans 6.7.1 C/C++ 的配置工作.编译测试及对中文支持 首 ...
- hornetq 入门(1)
Hornetq 版本2.4.0final 需要JDK7及以上 Hornetq官网 Hornetq2.1中文手册 step1.启动服务端 1.1准备配置文件(配置说明参考官网手册) hornetq-c ...
- cocos2dx中的坐标体系
1.UI坐标系和GL坐标系 2.本地坐标与世界坐标 本地坐标是一个相对坐标,是相对于父节点或者你指明的某个节点的相对位置来说的,本地坐标的原点在参考节点的左下角 世界坐标是一个绝对的坐标,是以屏幕的左 ...
- 微信小程序、应用号、订阅号、服务号、企业号小总结
微信小程序是现在微信推出的一个新的项目,但是很多人都不是很清楚微信小程序是怎么一回事,不明白到底怎样分别微信小程序和别的公众号.订阅号等的区别,那么让小编来给你介绍一下. 微信小程序目前是内侧阶段,是 ...
- c++ 格式化printf
类型为uint64_t的变量,使用printf进行打印时,需要区分操作系统: 64位系统:使用%ld 32位系统:使用%llu #include<stdio.h>#include < ...