D10
=-=今天被dev-c++坑到死..简直
晚上准备怒装liunx..
T1:数论
一开始碰到的是T1的运算符优先问题吧..maybe..但是我加上括号了还是WA啊..后面把式子拆开写才A了..次奥
附上代码以此为戒:
错误代码
m=(e-s)/t+1;
ans=((2+(m-1)*d)*m)/2;
tot+=ans;
正确的代码!
m=(e-s)/t+1;
ans=2+(m-1)*d;
ans*=m;
ans/=2;
tot+=ans;
呵呵我一脸啊..简直
真是不懂怎么了...
T2:正解 DP
骗分:DFS+剪枝 表示还是很感谢这一题..让我学会了用DFS打暴力,算是有所领会了吧 但是dev-c++和PSACAL在写DFS上有些差异,就是在于
int search(int x,int y,int t){
if(t==n+1){
tot=x*x*x*x+y;
if(tot<minx) minx=tot;
return minx;
}else{
search(x+a[t],y,t+1);
search(x,y+b[t],t+1);
}
return minx;
}
p不需要最后的return minx; QAQ可是c++要是没有写这一行,就会没有返回值 以及最后调用 search(0,0,0) 坑爹的是dev-c++不会显示这样的错误,于是就出现了手动输入数据可以得出正确答案,但是用cena就是过不去的情况...
悲愤啊...
MARK:
如果自己用linux不习惯,还是得用dev-c++的话,
记得要开-wall
具体位置在tool-compiler options-settings-warnings-YES
对于正解:DP
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int INF=2147483247;
long long n,m,t,a[100],b[100],f[100][151],minx,ans = INF,tot;
//f[i][j]表示前i个路段,使用j个红苹果的时候,使用青苹果最少的个数
int main(){
freopen("travel.in","r",stdin);
freopen("travel.out","w",stdout);
memset(f,63,sizeof(f));
scanf("%d%d",&t,&n);
for(int i=1;i<=n;i++){
scanf("%d%d",&a[i],&b[i]);
}
f[0][0]=0;//初始化
f[1][a[1]]=0;//
f[1][0]=b[1];//
for(int i=2;i<=n;i++)
for(int j=0;j<=150;j++){
if(j-a[i]>=0) f[i][j]=min(f[i-1][j]+b[i],f[i-1][j-a[i]]);
else f[i][j]=f[i-1][j]+b[i];
}
for(int i=0;i<=150;i++){
if(ans>f[n][i] + i*i*i*i) ans=f[n][i]+i*i*i*i;
}
printf("%lld",ans);
}
mark几个地方:
1.这个的主要思想是01背包,不过要注意这里有后效性,不能直接套用;
2.故这里要注意一下初始化
3.j-a[i]的情况要讨论..注意
4.最后记得for一遍过去,得出答案
5.当然最重要的,还是要会写状态转移方程..以及..DP就是这么回事..要有自信嗯! T3:BFS
其实仔细分析会发现这是一题很简单的广搜啊...
只不过是个三维坐标而已...
和二维的一样打就可以了...
不过我的程序不懂为什么会WA..
这里附上错误的代码,希望自己有一天可以发现错误啊><
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int dx[6]={-1,0,0,0,0,1},dy[6]={0,1,0,0,-1,0},dz[6]={0,0,1,-1,0,0};
int d1[1000001],d2[1000001],d3[1000001];
long long n,m,l,w,h,tot=0;
long long f[51][51][51];
bool vis[51][51][51];
int abs(int x){
return x<0?-x:x;
}
void search(int i,int j,int k){
int h=1,w=1;
int x,y,z,xx,yy,zz;
vis[i][j][k]=0;
d1[h]=i;d2[h]=j;d3[h]=k;
while(h<=w){
x=d1[h];y=d2[h];z=d3[h];
for(int i=0;i<=5;i++){
xx=x+dx[i];
yy=y+dy[i];
zz=z+dz[i];
if(abs(f[xx][yy][zz]-f[x][y][z])<=n && vis[xx][yy][zz] && xx<=l && yy<=w && zz<=h && xx>=0 && yy>=0 && zz>=0){
vis[xx][yy][zz]=0;
w++;
d1[w]=xx;
d2[w]=yy;
d3[w]=zz;
} }
h++;
}
}
int main(){
//freopen("engineer.in","r",stdin);freopen("engineer.out","w",stdout);
scanf("%d%d%d",&l,&w,&h);
scanf("%d",&n);
memset(vis,true,sizeof(vis));
for(int i=1;i<=l;i++)
for(int j=1;j<=w;j++)
for(int k=1;k<=h;k++) scanf("%d",&f[i][j][k]);
for(int i=1;i<=l;i++)
for(int j=1;j<=w;j++)
for(int k=1;k<=h;k++){
if(vis[i][j][k]){
tot++;
search(i,j,k);
}
}
printf("%d",tot);
return 0;
}
T4:spfa
先对feli作BFS,找出feli到每个地方的最短距离,然后模拟japan行动判断什么时候两人相遇。相遇的时间,就是花去的最短时间。 注意内存限制..只有1M
今天本来想改完的...可惜时间又浪费了 哼!连hpy都改完了..我也应该要改完!
一定要在xc回来之后,让他刮目相看啊.....
D10的更多相关文章
- D10——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D10 20180906内容纲要: 1.协程 (1)yield (2)greenlet (3)gevent (4)gevent实现单线程下socket多并发 2. ...
- Firemonkey 调整 MainMenu 字型大小 (D10)
修改 Windows 下的 Style,找到下面二个 Style ,修改其中的 text 内的 font 大小: 将 FMX.Menus.pas 复制到自己的工程目录内,再修改如下内容: constr ...
- Firemonkey TComboBox 下拉菜单字型修改方法 (D10)
在 FMX 下的 TComboBox 下拉菜单字型修改有二种方法: uses FMX.Pickers; 使用 Style,需先设定好 Style 后,再指定预设项的 Style,方法如下: proce ...
- 暑假集训D10总结
刷题 今天上了一天的树,然后就下不来了,(根本就没上去吧) 打了道256行的SpalySplay,然后在COGS上过了道4星半的[NOI2005]维护数列,然后--我发现!@#在内网上竟然E了(喵喵喵 ...
- 如何关闭D10 启动后自动打开的 WelCome页
在快捷方式上 修改为 "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\bds.exe" -pDelphi -np 最后增加 ...
- 纯真IP数据库解析Delphi D10.1下正常使用
直接一个单元,代码分享出来. unit Net.IPLocation; interface uses System.Classes, System.SysUtils, Winapi.WinSock ...
- D10 基本数据类型(各种职业的技能分析) 主要为 int 和 str
在python中具有魔法的 职业 类型 召唤每种职业 在pychar 中 打出该职业的名称 按住Ctrl 光标在该职业名称上 点击就能看该职业的技能 1 数字 int a = " ...
- 《转载》PAT 习题
博客出处:http://blog.csdn.net/zhoufenqin/article/details/50497791 题目出处:https://www.patest.cn/contests/pa ...
- 精选30道Java笔试题解答
转自:http://www.cnblogs.com/lanxuezaipiao/p/3371224.html 都 是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我 ...
随机推荐
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...
- 小记 js unicode 编码解析
原文:小记 js unicode 编码解析 var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; 关于这样的数据转换为中文问题,常用的两 ...
- 接收终端Request.InputStream阅读
接收终端Request.InputStream阅读请求页面参数,最后字符串. byte[] byts = new byte[HttpContext.Current.Request.InputStrea ...
- oracle_分区表的新增、修改、删除、合并。普通表转分区表方法
一. 分区表理论知识Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracl ...
- linux_apt-get 使用详解
安装应用从互联网上下载查询时 用到,今天安装个 mysql 简化流程如下: apt-cache search mysql-server sudo apt-get install mysql-serve ...
- HDU 1251 统计拼图 Trie解决问题的方法
基本上找到一个标准前缀的问题是,只需要insert和search它功能. 这里的主要变化是我n该记录方法,这里n国旗代表的不是叶节点,但是话的标志这条道路后的数字. 然后找到需要找到一个词的前缀,假如 ...
- Roundabout for jQuery
效果图: Roundabout是一个转换静态HTML元素结构为交互式播放区域的jQuery插件(而且并不仅仅是一个转盘,还有许多的形状) 首先你要下载好Jquery.min.js,和Jquery-Ro ...
- WPF中嵌入WinForm中的webbrowser控件
原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能 ...
- MongoDB学习笔记<两>
继续有shell学问,他们继续研究的例子,下面的知识: --文档数据插入 --文档数据删除 --文档数据更新 如下面的详细信息: 1.插入文档 db.person.insert({"name ...
- MVC 6 写法
MVC 6 一些不晓得的写法 今天在看 Scott Guthrie 的一篇博文<Introducing ASP.NET 5>,在 MVC 6 中,发现有些之前不晓得的写法,这边简单记录下, ...