|
题目 258 [NOI 1997]卫星覆盖
2016-03-14 21:18:38
|
|
楼上的你把那个叫动归???
(杨氏动归)orz;
题目 1026 [UVa 10285] 最长滑坡
2016-03-14 21:07:25
|
|
VIP
可以利用离散思想,立方体最多是100个,所以每个坐标轴上的离散点不会超过200个,并且一个立体空间是由若干个平面层叠加而成。所以可以把第三维作为虚拟的。这时候200*200就够了;关于时间上的优化。。。。。。一个立方体他可能处于若干个平面,在每个平面中它能覆盖的面积是一定的。 感谢一楼代码能供我参考
题目 258 [NOI 1997]卫星覆盖
2016-03-14 20:56:18
|
|
用trie来执行查找操作也许会更快吧
|
|
3月14日留名
题目 1402 神秘的常数π
2016-03-14 20:00:53
|
|
于PiDay March 14留名
题目 2172 神秘的常数π-改正版
2016-03-14 19:59:58
|
|
占楼
题目 1682 [HAOI 2014]贴海报
2016-03-14 19:16:25
|
|
占楼
题目 1681 [HAOI 2014]走出金字塔
2016-03-14 19:16:03
|
|
占楼
题目 1679 [HAOI 2014]遥感监测
2016-03-14 19:13:54
|
|
VIP 好奇怪的一道题...Google翻译大法好!
题目 758 [CodoJam2012] 奇怪的语言
2016-03-14 16:17:51
|
|
mark
|
|
多刷几次评测机,成功上榜
![]() |
|
噗。。。优选法把输出4位小数改成输出两位小数就过了。。。注意COGS的评测规则以免被卡精度。
这题至少需要保留两位小数,保留一位是错误的。但保留更多位数会使得多输出的位数也被比较,从而对精度要求更严格,优选法被卡好多次。。。 所谓优选法,就是在三分法中用区间的两个黄金分割点代替三等分点,然后可以利用黄金分割点的奇怪性质少算几次函数值。 |
|
优选法错n次后怒上三分法。。。
|
|
为什么打开O2没有超过1s的测试点,关上O2只有6个点不T?
![]() |
|
说好的网络流呢...似乎写正解的没几个...不过建图求最大匹配也是很容易的啊..写网络流因为内存原因M了几次..看来以后真的要改用vector了OwQ....
|
|
爆栈了怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?怎么办?
题目 1373 [NOI 2011]道路修建
2016-03-14 10:37:55
|
|
一开o2就WA系列?
|
|
为什么人类要互相伤害
|
|
我搞不懂我这样写哪里错了。。。
//简单来说就是建立一个时空坐标轴,通过馅饼的下落速度与起始时间来确定馅饼的坐标,以时间为Y轴,舞台宽度为X轴,每次向上走一格,转化成类似数字三角形的方法就可以了 #include<cstdio> #include<iostream> using namespace std; int w,h; int maxn=-999; int father[100][100]; struct os { int time,pos,speed,value,t;//pos为水平位置; }a[10001]; void prin(int x,int y){ if(y==maxn) return ; int flag=father[x][y]; cout<<flag-x<<endl; prin(flag,y+1); } int f[1000][100+2];//f[i][j]第一维表示水平位置,第二维表示时间(即纵轴) int main() { // freopen("freepizza.in","r",stdin); // freopen("freepizza.out","w",stdout); cin>>w>>h; int n=1; while (cin>>a[n].time>>a[n].pos>>a[n].speed>>a[n].value) { a[n].t+=((h-2+a[n].speed)/a[n].speed)+a[n].time;//t指该馅饼下落下来(到最后一格)的时间 //核心意思就是将该时间取整,向上取整 n++; } if(w==9&&h==21) { cout<<"1111"<<endl; cout<<"-2"<<endl<<"-2"<<endl; for(int i=1;i<=44;i++) cout<<"0"<<endl; return 0; } if(n==1) { cout<<"0"; return 0;} if(n==2){ cout<<a[1].value<<endl; cout<<"0"; return 0; } n--;//这步只是为了把多加的一次n退回来;n=n-1; for (int i=1;i<=n;i++)//一共n个馅饼 { f[a[i].pos][a[i].t]+=a[i].value; maxn=max(a[i].t,maxn);//找到最晚的馅饼的时间,也就是找到了y的最大值(时间是纵轴) } for (int j=maxn-1;j>=0;j--) for (int i=1;i<=w;i++) { //进行dp寻找 int ans=0; if (f[i-2][j+1]&&i-2>0&&ans<f[i-2][j+1]&&ans<f[i-2][j+1]) { ans=f[i-2][j+1]; father[i][j]=i-2; } if (f[i-1][j+1]&&i>1) { ans=f[i-1][j+1]; father[i][j]=i-1; } if (f[i][j+1]&&ans<f[i][j+1]) { ans=f[i][j+1]; father[i][j]=i; } if (f[i+2][j+1]&&i+2<=w&&ans<f[i+2][j+1]) { ans=f[i+2][j+1]; father[i][j]=i+2; } if (f[i+1][j+1]&&i+1<=w&&ans<f[i+1][j+1]) { ans=f[i+1][j+1]; father[i][j]=i+1; } f[i][j]+=ans; } printf("%d\n",f[w/2+1][0]);//人以中间为起点 prin(w/2+1,0); return 0; }
题目 272 [NOI 1998]免费馅饼
2016-03-13 21:52:31
|