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必看)
很明显我是想发提高组合集的.普及组考纲……用发么. 当然如果你想看的话也可以,就一点点: 递归.排序…… 很明显上面那都不是重点.普及组只要掌握搜索.二分.单调队列.数学.随机化等等,一等奖没问题的, ...
随机推荐
- 移动端-js触摸事件
开发者工具 在移动开发中,一种较为容易的做法是,先在桌面上开始原型设计,然后再在打算要支持的设备上处理移动特有的部分.多点触摸正是难以在PC上进行测试的那些功能之一,因为大部分的PC都没有触摸输入. ...
- angularjs 指令—— 绑定策略(@、=、&)
angularjs 指令—— 绑定策略(@.=.&) 引入主题背景:angular 的指令配置中的template可以直接使用硬编码写相应的代码,不过也可以根据变量,进行动态更新.那么需要用到 ...
- [实现]Javascript代码的另一种压缩与加密方法——代码图片转换
代码=图片 图片=代码 JS代码对于喜欢F12的同志来说,连个遮羞布都没有... 虽然把代码变成图片也仅仅只是增加一层纱布而已...但这方法还是挺好玩的,而且代码也被压缩了一点. 第一次看到[图片=代 ...
- AE选中要素
private void 选中要素ToolStripMenuItem_Click(object sender, EventArgs e) { if(axMapControl2.LayerCount&l ...
- 从angularJS看MVVM
javascript厚积薄发走势异常迅猛,导致现在各种MV*框架百家争雄,MVVM从MVC演变而来,为javascript注入了全新的活力.我工作的业务不会涉及到angularJS[ng]这么重量级的 ...
- class&meta class
http://chun.tips 当我们发送一个消息给一个NSObject对象时,这条消息会在对象的类的方法列表里查找当我们发送一个消息给一个类时,这条消息会在类的Meta Class的方法列表里查找 ...
- iOS Xcode编译报错问题解决办法汇总
1. 编译出现错误:linker command failed with exit code 1 第一种方法:找到Build settings->Linking->Other Linker ...
- 一个统计报表sql问题
今天朋友问我了一个统计报表的sql问题.我弄了好久.终于算是写出来了.这里记录下. 问题: id--------------name--------------addtime1 ...
- Routine
前端要学习三个部分:HTML,CSS,JavaScript(简称JS),因此首先明确三个概念:HTML是内容层,它的目的是表示一个HTML标签在页面里是个什么角色. CSS是样式层,它的目的是表示一块 ...
- Computer Network and Internet(1)
计算机网路相关的教材很少,TCP/IP,HTTP 协议非常多,很难找到一个合适的材料去学习. <计算机网络>自上而下方法是这个方面的经典之作. 1.what is internet? 1. ...