Giter Site home page Giter Site logo

poj's Introduction

POJ

省赛前的训练题目题解代码 78多个题,其实是将近100道有好多题太难就没加上,到5月7号省赛,不知道能做多少,尽可能的做完吧,平均一天两个多题目QAQ好菜啊,英语完全不懂 代码仓库

我已经做了16/78题

POJ-1328

贪心,根据每个岛对应雷达的圆心范围,排序贪心 核心代码:

    if(line.r<node[i].l){
        sum++;
        line=node[i];
    }else if(line.r>=node[i].r){
        line=node[i];
    }

POJ-2524

并查集,非常简单的一个并查集问题,数据量也不大直接套模版

POJ-3278

bfs问题,每一个状态有三个转移目标转移以后步数+1,最后注意范围 数组的开两倍,RE了两次才明白过来,,,真是**了

POJ-2586

贪心,题目贼难懂 题目描述: ACM因为Y2K这个bug丢失了MS Inc的一些统计数据,ACM所记得的,那些数据是MS Inc 提交的1999年各个月的盈利或亏损情况,而且,一个月如果是盈利的,那么盈利就为输入的s,如果这个月亏损了,那么亏损就为输入的d。但ACM忘了哪个月或者多少个月提交的盈利或者亏损。MS Inc,不像其他公司,它每次提交都是提交连续5个月的盈亏情况(1-5,2-6,…,8-12共8次),ACM记得这8次提交都是同一个亏损额,但忘了亏损多少。 思路: 当亏损是ssssd时,当年最少为ssssdssssdss 当亏损是sssdd时,当年最少为sssddsssddss 当亏损是ssddd时,当年最少为ssdddssdddss 当亏损是sdddd时,当年最少为sddddsddddsd 当亏损是ddddd时,当年最少为dddddddddddd

POJ-1062

单源最短路,Dijkstra算法,求出所有的等级符合条件的人到1所需要的最短路 增加源0,0到其他店的距离为每个点的价值

POJ-1753

题意:翻棋子,当出现全黑或是全白的时候停止,每次翻转连带着上、下、左、右一块翻转(如果有的话)。问实现全白或是全黑所需最少步数。。。 DFS,把每一位都入栈,然后一个一个的往回退,退回一个就反转一下,然后再入栈,每次反转后都要判断一下

POJ-2965

这个题和POJ-1753是一样的,就是多了一个记录坐标,在每次反转以后记录坐标就可以了

POJ-2109

$k^n=p$,这个题的意思是给出n,p求出k, 正常的思路p的位数除n得到的是k的位数,然后进行二分,求出K,但是我不会写高精度啊,,,,,,,,QAQ好菜 这个题的数据范围真的很强 $1&lt;=n&lt;= 200$, $1&lt;=p&lt;10^{101}$ 然后学习了一波,才知道double的数据范围 $-1.72^{308}$ ~~ $ 1.710^{308}$ ,然后就可以pow(p,1/n)求解

POJ-2506

大数+递推 由于没有高精度的模板,,,就只能上java了,java的BigInteger还是蛮好用的

递推公式dp[i]=dp[i-1]+dp[i-2]*3;

因为如果我们有2*(n-1)个,然后再加一个小的就好了, 如果有2*(n-2)个我们可以加一个22的或者两种两个21个,但是其中一种和前面的情况重复了所以就只要两种 最后得出递推公式

POJ-3083

这个题比较麻烦,两次dfs一次bfs,贼烦,最不想写搜索 题恨简单 题意 有一个迷宫,要你求分别算出从迷宫起点到终点的3种距离:优先左转,优先右转,以及最短距离。保证左转和右转一定能从起点到达终点的。 分析 又是一道题意模糊的题目。 首先我们要确定虽然题目中没说,但是左转优先的时候如果走不通就往上走,然后才是右转,最后才是往下走。 右转优先的反向顺序是:右,上,左,下。 由于题目中保证了上面两种走法一定能走到终点,且需要注意左转优先始终是相对于当前的方向而已的。比如我们令左=0,上=1,右=2,下=3的时候,当前方向ans的左方向=(ans+3)%4

POJ-3295

判断是不是一个永真式,用所给的逻辑表达式去判断,用栈去存数,从后往前判断

POJ-3026

最小生成树,比较麻烦,给出的地图中用bfs找出每个点到其他点的距离,然后再用Kruskal,找出最小生成树

POJ-1258

最小生成树模板

POJ-2485

求最小生成树的最长边

POJ-3259

Bellman-Ford 单源最短路径算法判断是否有负环 Bellman-Ford 如果有负环说明可以回到原来点,如果没有则不能

POJ-1860

有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加 货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后得到的s金额是增加的 怎么找正权回路呢?(正权回路:在这一回路上,顶点的权值能不断增加即能一直进行松弛) 和上一个题目一样,这个判断正环

poj's People

Contributors

aeizzz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.