USACO(含training section)水题合集[5/未完待续]
(1) USACO2.1 Ordered Fractions
枚举 排序即可,注意1/1
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=,L=1e5;
struct fr{
int a,b;
fr(int q=,int w=):a(q),b(w){}
}f[L];
int n,cnt=;
inline bool cmp(fr &x,fr &y){
return (double)x.a/x.b<(double)y.a/y.b;
}
inline int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
int main(){
cin>>n;
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
if(gcd(i,j)==)
f[++cnt]=fr(i,j);
sort(f+,f++cnt,cmp);
for(int i=;i<=cnt;i++)
printf("%d/%d\n",f[i].a,f[i].b);
cout<<"1/1";
}
(2) USACO1.5Number Triangles
基础DP
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int r,d[][],a[][];
int dp(int i,int j){
if(d[i][j]>=) return d[i][j];
return d[i][j]=a[i][j]+(i==r?:max(dp(i+,j),dp(i+,j+)));
}
int main(){
scanf("%d",&r);//cin>>r;
memset(d,-,sizeof(d));
for(int i=;i<=r;i++)
for(int j=;j<=i;j++) scanf("%d",&a[i][j]);//cin>>a[i][j];
int ans=-;
cout<<dp (,);
}
(3) USACO1.2 Transformations
模拟
#include <iostream>
using namespace std;
const int N=;
int n;
char a[N][N],r[N][N],t[N][N];
bool ro90(char a[N][N]){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(a[i][j]!=r[j][n-i+]) return false;
return true;
}
bool ro180(char a[N][N]){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(a[i][j]!=r[n-i+][n-j+]) return false;
return true;
}
bool ro270(char a[N][N]){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(a[i][j]!=r[n-j+][i]) return false;
return true;
}
void img(char a[N][N],char t[N][N]){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
t[i][n-j+]=a[i][j];
}
bool check(char r[N][N],char t[N][N]){
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(r[i][j]!=t[i][j]) return false;
return true;
} int solve(){
if(ro90(a)) return ;
if(ro180(a)) return ;
if(ro270(a)) return ;
img(a,t);
if(check(r,t)) return ;
if(ro90(t)) return ;
if(ro180(t)) return ;
if(ro270(t)) return ;
if(check(r,t)) return ;
return ;
}
int main(int argc, const char * argv[]) {
cin>>n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)cin>>a[i][j]; for(int i=;i<=n;i++)
for(int j=;j<=n;j++)cin>>r[i][j]; cout<<solve(); }
(4) USACO1.4Mother's Milk
dfs,六种倒水方法,fill简化
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int vis[N][N][N];
int l[],ta,tb,tc;
int ans[N];
inline void fill(int &a,int &b,int num){
int tmp=min(l[num]-a,b);
a+=tmp;
b-=tmp;
} void dfs(int a,int b,int c){//printf("%d %d %d\n",a,b,c);
if(vis[a][b][c]) return;
if(a==) ans[c]=true;
vis[a][b][c]=; ta=a;tb=b;tc=c;//
fill(ta,tb,);dfs(ta,tb,tc); ta=a;tb=b;tc=c;//
fill(ta,tc,);dfs(ta,tb,tc); ta=a;tb=b;tc=c;//
fill(tb,ta,);dfs(ta,tb,tc); ta=a;tb=b;tc=c;//
fill(tb,tc,);dfs(ta,tb,tc); ta=a;tb=b;tc=c;//
fill(tc,ta,);dfs(ta,tb,tc); ta=a;tb=b;tc=c;//
fill(tc,tb,);dfs(ta,tb,tc);
}
int main(){
cin>>l[]>>l[]>>l[];
dfs(,,l[]);
for(int i=;i<=l[];i++) if(ans[i]) cout<<i<<" "; }
(5)USACO迷宫
裸DFS
#include<iostream>
using namespace std;
int n,m,t,sx,sy,fx,fy,ans=;int x,y;
int e[][],vis[][],dx[]={-,,,},dy[]={,,,-};
void dfs(int x,int y){
if(x<||y<||x>n||y>m) return;
if(e[x][y]) return;
if(x==fx&&y==fy) {ans++;return;}
if(vis[x][y]) return;
vis[x][y]=;
for(int i=;i<;i++) dfs(x+dx[i],y+dy[i]);
vis[x][y]=;
}
int main(){
cin>>n>>m>>t>>sx>>sy>>fx>>fy;
for(int i=;i<t;i++) {cin>>x>>y;e[x][y]=;}
dfs(sx,sy);
cout<<ans;
}
USACO(含training section)水题合集[5/未完待续]的更多相关文章
- NOIP水题合集[3/未完待续]
NOIP2008pj传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球, ...
- DP+贪心水题合集_C++
本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本次是最后一篇免费的考试题解,以后的考试题目以及题解将会以付费的方式阅读,题目质量可以拿本次作为参考 本来半个月前就已经搞得差不多了,然后 ...
- FCRA题库及答案(未完待续)
一.FCRA-入门基础(23) 1.FineReport中普通模板总共有5种不同的预览模式:分页预览.填报预览.新填报预览.数据分析.移动端预览 决策报表下为表单预览.移动端预览 2.FineRepo ...
- 记录一下第一次在CodeForces供题的事(未完待续)
3月11日 因为想出题而开始打比赛上分 (Rating 1727) (期间最低掉到 1669) 6月4日凌晨 上分,有了权限 (Rating 2141) 6月4-6日 出了七道题 6月8-12日 又出 ...
- 秋招如何抱佛脚?2022最新大厂Java面试真题合集(附答案
2022秋招眼看着就要来了,但是离谱的是,很多同学最近才想起来还有秋招这回事,所以纷纷临时抱佛脚,问我有没有什么快速磨枪的方法, 我的回答是:有! 说起来,临阵磨枪没有比背八股文更靠谱的了,很多人对这 ...
- Codeforces Round #197 (Div. 2) (A、B、C、D、E五题合集)
A. Helpful Maths 题目大意 给一个连加计算式,只包含数字 1.2.3,要求重新排序,使得连加的数字从小到大 做法分析 把所有的数字记录下来,从小到大排序输出即可 参考代码 #inclu ...
- Codeforces Round #195 A B C 三题合集 (Div. 2)
A 题 Vasily the Bear and Triangle 题目大意 一个等腰直角三角形 ABC,角 ACB 是直角,AC=BC,点 C 在原点,让确定 A 和 B 的坐标,使得三角形包含一个矩 ...
- 【牛客 错题集】Linux系统方面错题合集
前言:牛客Linux322道全部刷完,有些题目较老,甚至考核5系统,现在7都出来了几年了 = = 还有些题目解析的很好部分也摘录了进来.很多涉及嵌入式开发的选择题同样的摘录的作为了解使用 ------ ...
- noip普及组考纲+样题合集——初级篇(OIer必看)
很明显我是想发提高组合集的.普及组考纲……用发么. 当然如果你想看的话也可以,就一点点: 递归.排序…… 很明显上面那都不是重点.普及组只要掌握搜索.二分.单调队列.数学.随机化等等,一等奖没问题的, ...
随机推荐
- javascript数据类型理解整理
起因:关于数据类型这块,自己看了很多遍相关的资料,每次查看和实践都有一些体会和理解:但又感到没有理解透,总是差一点,最近又在看这块的内容,加上最近的积累,做个相关笔记 ECMAScript数据类型:1 ...
- XSS攻击的解决方法
在我上一篇<前端安全之XSS攻击>文中,并没有把XSS攻击的解决办法说完整,而XSS的攻击又那么五花八门,有没有一招“独孤九剑”能够抗衡,毕竟那么多情况场景,开发人员无法一一照顾过来,而今 ...
- Node异步
一 Node异步工作原理 Node.js 异步编程的直接体现就是回调,回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数. 二 同步代码示例 先建立 ...
- [转]MOSS通过此命令注册模板,web应用程序可以根据stp模块生成网站集
注:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin stsadm –o add ...
- 两个Service之间相互监视的实现
在实际开发中可能需要用到两个Service相互监视的情况,本示例就是实现此功能以作参考. 服务A: public class ServiceA extends Service { private st ...
- asp.net开发中常见公共捕获异常方式总结(附源码)
本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统 ...
- js document.createElement()的用法 (转)
document.createElement()的用法 分析代码时,发现自己的盲点--document.createElement(),冲浪一番,总结了点经验. document.createElem ...
- drop和delete的区别是什么
当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.
- SAM4E单片机之旅——24、使用DSP库求向量数量积
DSP(Digital Signal Processing,数字信号处理)中会使用大量的数学运算.Cortex-M4中,配置了一些强大的部件,以提高DSP能力.同时CMSIS提供了一个DSP库,提供了 ...
- SQL Server 2012中Task是如何调度的?
SQL Server 2012中Task是如何调度的?[原文来自:How It Works: SQL Server 2012 Database Engine Task Scheduling] ...