CCF 第7次认证
2016-04-30 11:15
197 查看
由于没有正式试题测试,我只能靠自己回想写下代码
转折点
import java.util.Scanner; /** * 求转折点个数 本题100分 * * @author wwhhff11 * */ public class Main { public static boolean check(int a, int b) { return a > 0 && b < 0 || a < 0 && b > 0; } public static void main(String[] args) { Scanner cin = new Scanner(System.in); while (cin.hasNext()) { int n = cin.nextInt(); int val[] = new int ; for (int i = 0; i < n; i++) { val[i] = cin.nextInt(); } int ans = 0; for (int i = 1; i < n - 1; i++) { if (check(val[i] - val[i - 1], val[i + 1] - val[i])) { ans++; } } System.out.println(ans); } } }
俄罗斯方块
import java.util.Scanner; //输入格式类似下面这种: //15*10方块空间 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 0 0 0 0 0 0 0 //0 0 0 1 0 0 0 1 0 0 //0 0 1 0 1 0 0 0 1 0 //0 0 0 0 1 1 0 0 1 0 //0 0 0 0 //1 1 0 0 //1 1 0 0 //0 0 0 0 //6 //第1~15行是输入的原图案,1代表有方块0代表没有。第16~19行是新出来的图形, //即要下落的图形,最后一个整数代表新出来的图形在第几列开始下落。 //上面为1,则代表新给出的4*4矩阵的最左边一列是和原图案第1列对齐的,即下标为0的列。 //输入格式限定原图案前四行都为0。下落规则:若碰到为1的方块则停止下落,或者到达原图案底部。 //要求输出最后下落完成之后的图案。 /** * 俄罗斯方块 本题100分 * * @author wwhhff11 * */ public class Main { public static int MAXN = 15; public static int MAXM = 10; public static int MAXN2 = 4; public static int MAXM2 = 4; public static int calcStep(int x, int y, int map[][], int n, int m) { int step = 0; while (x < n && y < m && map[x][y] == 0) { x++; step++; } return step; } public static void main(String[] args) { Scanner cin = new Scanner(System.in); while (cin.hasNext()) { int map[][] = new int[MAXN][MAXM]; int target[][] = new int[MAXN2][MAXM2]; for (int i = 0; i < MAXN; i++) { for (int j = 0; j < MAXM; j++) { map[i][j] = cin.nextInt(); } } for (int i = 0; i < MAXN2; i++) { for (int j = 0; j < MAXM2; j++) { target[i][j] = cin.nextInt(); } } int start = cin.nextInt(); int step = Integer.MAX_VALUE; for (int i = 0; i < MAXN2; i++) { for (int j = 0; j < MAXM2; j++) { if (target[i][j] == 1) { step = Math.min(step, calcStep(i, j + start - 1, map, MAXN, MAXM)); } } } for (int i = 0; i < MAXN2; i++) { for (int j = 0; j < MAXM2; j++) { if (target[i][j] == 1) { map[i + step - 1][j + start - 1] = 1; } } } for (int i = 0; i < MAXN; i++) { for (int j = 0; j < MAXM; j++) { if (j == 0) { System.out.print(map[i][j]); } else { System.out.print(" " + map[i][j]); } } System.out.println(); } } } }
绝对路径和相对路径
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 根据当前路径,将相对路径转化为绝对路径 本题90分 * * @author wwhhff11 * */ public class Main { public static List<String> spiltPath(String path) { String terms[] = path.split("/"); List<String> paths = new ArrayList<String>(); for (int i = 0, n = terms.length; i < n; i++) { String s = terms[i].trim(); if ("".equals(s) == false && s.length() > 0) { System.out.println(s); paths.add(s); } } return paths; } public static String joinPath(List<String> paths) { while (true) { int flag = 0; for (int i = 0, n = paths.size(); i < n; i++) { String term = paths.get(i); if (".".equals(term) == true) { // 当前目录 paths.remove(i); flag = 1; break; } else if ("..".equals(term) == true) { // 上一级目录 paths.remove(i); paths.remove(i - 1); flag = 1; break; } } if (flag == 0) { break; } } StringBuilder sb = new StringBuilder(); for (String path : paths) { sb.append("/").append(path); } return sb.toString(); } public static void main(String[] args) { Scanner cin = new Scanner(System.in); while (cin.hasNext()) { int n = cin.nextInt(); String curpath = cin.next(); for (int i = 0; i < n - 1; i++) { String path = cin.next(); if (path.startsWith(".") == true) { // 相对路径 path = curpath + "/" + path; } path = joinPath(spiltPath(path)); System.out.println(path); } } } }
相关文章推荐
- Luo 1233 工作分配
- 十、森林与并查集---(4)并查集的合并
- POJ 2773 Happy 2006(容斥原理+二分)
- 设计模式在线教程
- 解决ScrollView嵌套ListView,在加载时只防止滚动到ListView位置的解决方案
- xml解析,基于XmlPullParser
- 你以为你的protected控制访问符理解透彻了吗
- 记忆化搜索 Codeforces666A Reberland Linguistics
- 定位式查找---哈希表
- 23种设计模式
- MongoDB入门教程(二)
- 23种设计模式
- GSL - GNU Scientific Library 在 windows 上的使用
- Redis与Memcached的区别
- IDE 下未提交代码本地被覆盖如何恢复
- bsoj 3733 【模拟试题】打印文章(hdu3507)
- 事件总线 EventBus
- 20145212 《Java程序设计》第9周学习总结
- mysql中使用正则表达式查询
- 58. Android一些开发习惯总结