//3-1

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. int main()
  6. {
  7. int T;
  8. char score[];
  9. scanf("%d", &T);
  10. while (T-- > ) {
  11. scanf("%s", score);
  12. int sum = ;
  13. int num = ;
  14. char prev = 'X';
  15. for (int i = ; score[i] != '\0'; i++) {
  16. if (score[i] == 'O'){
  17. if (prev == 'O'){
  18. num++;
  19. }
  20. else {
  21. num = ;
  22. }
  23. sum += num;
  24. prev = 'O';
  25. }
  26. else {
  27. prev = 'X';
  28. }
  29. }
  30. printf("%d\n", sum);
  31. }
  32.  
  33. return ;
  34. }

3-2

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. bool isNum(char c){
  6. return c >= '' && c <= '';
  7. }
  8.  
  9. double mass(char m){
  10. switch (m){
  11. case 'C': return 12.01;
  12. case 'H': return 1.008;
  13. case 'O': return 16.00;
  14. case 'N': return 14.01;
  15. default: return 0.0;
  16. }
  17. }
  18.  
  19. int charToInt(char c) {
  20. if (c >= '' && c <= '')
  21. return c - '';
  22. else
  23. return ;
  24. }
  25.  
  26. int main()
  27. {
  28. int T;
  29. char molar[];
  30. scanf("%d", &T);
  31. while (T-- > ) {
  32. scanf("%s", molar);
  33. double sum = ;
  34. bool prevIsNum = false;
  35. char m = 'X'; // m is the previous molecular (C, H, O, N), 'X' is the previous for the first molecular, mass('X') == 0
  36. for (int i = ; molar[i] != '\0'; i++) {
  37. if (isNum(molar[i])){
  38. if (prevIsNum){
  39. char hiDigit = molar[i - ];
  40. char loDigit = molar[i];
  41. sum += mass(m) * (charToInt(hiDigit) * + charToInt(loDigit));
  42. }
  43. else {
  44.  
  45. }
  46. prevIsNum = true;
  47. }
  48. else { // C, H, O, N
  49. if (prevIsNum){
  50. // if previous two letters are numbers, the mass is caculated elsewhere
  51. if (!isNum(molar[i - ])){
  52. char loDigit = molar[i - ];
  53. sum += mass(m) * charToInt(loDigit);
  54. }
  55. }
  56. else{
  57. // add previous m
  58. sum += mass(m);
  59. }
  60. m = molar[i];
  61. prevIsNum = false;
  62. }
  63. }
  64.  
  65. // last letter is C/H/O/N
  66. if (!prevIsNum)
  67. sum += mass(m);
  68.  
  69. printf("%.3f\n", sum);
  70. }
  71.  
  72. return ;
  73. }

3-3

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. int main()
  6. {
  7. int T;
  8. int n;
  9. scanf("%d", &T);
  10. while (T-- > ) {
  11. scanf("%d", &n);
  12. int counts[] = { };
  13. for (int i = ; i <= n; i++){
  14. int j = i;
  15. while (j > ) {
  16. counts[j % ]++;
  17. j /= ;
  18. }
  19. }
  20.  
  21. for (int i = ; i < ; i++){
  22. printf("%d", counts[i]);
  23. if (i == )
  24. printf("\n");
  25. else
  26. printf(" ");
  27. }
  28. }
  29.  
  30. return ;
  31. }

3-4

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. bool sameStr(char *s1, char *s2, int len)
  6. {
  7. for (int i = ; i < len; i++)
  8. if (s1[i] != s2[i])
  9. return false;
  10.  
  11. return true;
  12. }
  13.  
  14. int main()
  15. {
  16. int T;
  17. char s[];
  18. scanf("%d", &T);
  19. while (T-- > ) {
  20. scanf("%s", s);
  21.  
  22. if (s[] != '\0'){
  23. char first = s[];
  24.  
  25. // find a equal char
  26. int start = ; // start point for searching
  27. while (true) {
  28. int idx = start;
  29. for (; s[idx] != '\0'; idx++){
  30. if (first == s[idx])
  31. break;
  32. }
  33.  
  34. if (s[idx] != '\0'){
  35. // compare s[0..idx-1] with s[idx..] of same length = idx
  36. if (sameStr(s, s + idx, idx)){
  37. printf("%d\n\n", idx);
  38. break;
  39. }
  40.  
  41. start = idx + ;
  42. }
  43. else{ // not found
  44. break;
  45. }
  46. }
  47. }
  48. else { // empty string
  49.  
  50. }
  51.  
  52. }
  53.  
  54. return ;
  55. }

3-5

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. int main()
  6. {
  7. int T = ;
  8. char puzzle[][];
  9. char newline;
  10. int empty_row, empty_col;
  11.  
  12. while (true) {
  13.  
  14. for (int i = ; i < ; i++) {
  15. for (int j = ; j < ; j++) {
  16. scanf("%c", &puzzle[i][j]);
  17. if (i == && j == && puzzle[][] == 'Z'){
  18. // end of test cases
  19. return ;
  20. }
  21. if (puzzle[i][j] == ' '){
  22. empty_row = i;
  23. empty_col = j;
  24. }
  25.  
  26. }
  27. scanf("%c", &newline); // swallow the new line
  28. }
  29.  
  30. // process moves
  31. char m;
  32. bool error = false;
  33. while (true){
  34. scanf("%c", &m);
  35. if (m == '') break;
  36. switch (m){
  37. case 'A':
  38. if (empty_row == ){
  39. error = true;
  40. break;
  41. }
  42. // swap with above
  43. puzzle[empty_row][empty_col] = puzzle[empty_row - ][empty_col];
  44. puzzle[empty_row - ][empty_col] = ' ';
  45. empty_row--;
  46. break;
  47. case 'B':
  48. if (empty_row == ){
  49. error = true;
  50. break;
  51. }
  52. // swap with bottom
  53. puzzle[empty_row][empty_col] = puzzle[empty_row + ][empty_col];
  54. puzzle[empty_row + ][empty_col] = ' ';
  55. empty_row++;
  56. break;
  57. case 'L':
  58. if (empty_col == ){
  59. error = true;
  60. break;
  61. }
  62. // swap with left
  63. puzzle[empty_row][empty_col] = puzzle[empty_row][empty_col - ];
  64. puzzle[empty_row][empty_col - ] = ' ';
  65. empty_col--;
  66. break;
  67. case 'R':
  68. if (empty_col == ){
  69. error = true;
  70. break;
  71. }
  72. // swap with above
  73. puzzle[empty_row][empty_col] = puzzle[empty_row][empty_col + ];
  74. puzzle[empty_row][empty_col + ] = ' ';
  75. empty_col++;
  76. break;
  77. }
  78. }
  79. scanf("%c", &newline); // swallow the new line
  80.  
  81. printf("Puzzle #%d:\n", T++);
  82. if (error){
  83. printf("This puzzle has no final configuration.\n");
  84. }
  85. else {
  86. for (int i = ; i < ; i++) {
  87. for (int j = ; j < ; j++) {
  88. printf("%c", puzzle[i][j]);
  89. if (j != ) printf(" ");
  90. }
  91. printf("\n");
  92. }
  93. }
  94. printf("\n");
  95. }
  96.  
  97. }

3-6

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. struct grid{
  6. char c;
  7. int n;
  8. };
  9.  
  10. struct grid puzzle[][];
  11.  
  12. int main()
  13. {
  14. int r, c;
  15. char newline;
  16. int T = ;
  17. while (true) {
  18. scanf("%d", &r); if (r == ) break;
  19. scanf("%d", &c);
  20. scanf("%c", &newline); // swallow the new line
  21.  
  22. int num = ;
  23. for (int row = ; row < r; row++){
  24. for (int col = ; col < c; col++) {
  25. scanf("%c", &puzzle[row][col].c);
  26. if ((puzzle[row][col].c != '*') && // white
  27. (row == || col == || puzzle[row - ][col].c == '*' || puzzle[row][col - ].c == '*')){ // eligible
  28. puzzle[row][col].n = num++;
  29. }
  30. else if (puzzle[row][col].c == '*') { // black
  31. puzzle[row][col].n = -;
  32. }
  33. else { // illegible white
  34. puzzle[row][col].n = ;
  35. }
  36. }
  37. scanf("%c", &newline); // swallow the new line
  38. }
  39.  
  40. printf("puzzle #%d:\n", T++);
  41.  
  42. // Across words
  43. printf("Across\n");
  44. for (int row = ; row < r; row++){
  45. int col = ;
  46. while (col < c) {
  47. while (col < c && puzzle[row][col].n < ) { // skip black
  48. col++;
  49. }
  50. if (col < c) {
  51. printf("%d.", puzzle[row][col].n);
  52. }
  53. while (col < c && puzzle[row][col].n >= ) { // eligible and illegible white
  54. printf("%c", puzzle[row][col].c);
  55. col++;
  56. }
  57. printf("\n");
  58. while (col < c && puzzle[row][col].n < ) { // skip black
  59. col++;
  60. }
  61. }
  62.  
  63. }
  64.  
  65. // Down words
  66. printf("Down\n");
  67. for (int row = ; row < r; row++){
  68. for (int col = ; col < c; col++) {
  69. if ((puzzle[row][col].c != '*') &&
  70. (row == || puzzle[row - ][col].c == '*')) {
  71. printf("%d.", puzzle[row][col].n);
  72. for (int dr = row; dr < r && puzzle[dr][col].c != '*'; dr++){
  73. printf("%c", puzzle[dr][col].c);
  74. }
  75. printf("\n");
  76. }
  77. }
  78. }
  79.  
  80. printf("\n"); // Separate output for successive input puzzles by a blank line.
  81.  
  82. /*
  83. for (int row = 0; row < r; row++) {
  84. for (int col = 0; col < c; col++) {
  85. printf("%c ", puzzle[row][col].c);
  86. }
  87. printf("\n");
  88. }
  89.  
  90. for (int row = 0; row < r; row++) {
  91. for (int col = 0; col < c; col++) {
  92. printf("%d ", puzzle[row][col].n);
  93. }
  94. printf("\n");
  95. }
  96. */
  97. }
  98.  
  99. return ;
  100. }

LRJ的更多相关文章

  1. lrj计算几何模板

    整理了一下大白书上的计算几何模板. #include <cstdio> #include <algorithm> #include <cmath> #include ...

  2. 倒水问题(Fill,UVA 10603) lrj白书 p202

    看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /* 状态start到各个状态u1,u2,u3..... 的倒水量分别为u1.dist,u2.dist,u3.dist.... * ...

  3. LRJ入门经典-0907万圣节的小L306

    原题 LRJ入门经典-0907万圣节的小L306 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 今天是万圣节,小L同学开始了 ...

  4. LRJ入门经典-0906最短公共父串305

    原题 LRJ入门经典-0906最短公共父串305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 给定字符串A和字符串B,要求 ...

  5. LRJ入门经典-0905邮票和信封305

    原题 LRJ入门经典-0905邮票和信封305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 假定一张信封最多贴5张邮票,如 ...

  6. LRJ入门经典-0903切蛋糕305

    原题 LRJ入门经典-0903切蛋糕305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 如图所示有一个矩形蛋糕,上面划分成 ...

  7. // 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward;

    // 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward; ...

  8. 第五章第二例题关于Vector(LRJ)

    vector(动态数组)(粘) 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简 ...

  9. 第四章第四个例题(LRJ)

    半年了,最起码的编程能力也谈不上啊,思维神马就更不不敢说了. 互联网时代讲求效率,走得慢和不走没有区别了. The war is on. (buhuidetiduokanduodajibianyehu ...

  10. 强连通分量(LRJ训练指南)

    #include <iostream> #include <queue> #include <string> #include <cstdio> #in ...

随机推荐

  1. webpack--安装,使用

    1. webpack 1.1. webpack介绍 webpack是一个资源的打包工具,目前最新为webpack3,可以将 .js, .css , image等静态资源当做一个模块来进行打包,那么每一 ...

  2. python进程间通信 queue pipe

    python进程间通信 1 python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe是两个进程的通信 1.1 Queue有两个方法: Put ...

  3. 【风马一族_php】数组函数

    原文来自:http://www.cnblogs.com/sows/p/6045699.html (博客园的)风马一族 侵犯版本,后果自负  2016-11-09 15:56:26 数组 函数 php- ...

  4. JavaScript--事件委托--冒泡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 非接触型手掌静脉识别 PalmSecure™

    静脉识别,使用近红外线读取静脉模式,与存储的静脉模式进行比较,进行本人识别的识别技术.富士通的PalmSecure™,利用该技术,由离开识别装置的位置,使用近红外线拍摄,与预先存储的静脉模式进行比较从 ...

  6. iOS开发 底层抛析运行循环—— RunLoop

    http://blog.csdn.net/zc639143029/article/details/50012527 一.RunLoop基本概念 概念:程序的运行循环,通俗的来说就是跑圈. 1. 基本作 ...

  7. C#中App.config文件配置获取

    最新的framework使用如下方法: using System.Configuration; ConfigurationManager.AppSettings["key"]; A ...

  8. 微信小程序错误——mpvue小程序:未找到 app.json 中的定义的 pages "pages/XXX/XXX" 对应的 WXML 文件

    背景 在刚开始学习开发小程序时,使用微信开发工具在app.json建立页面,写好配置文件名称后,应该会自动生成页面的4个文件,结果没有生成文件,反而报错:mpvue小程序:未找到 app.json 中 ...

  9. 写一个nginx监控日志

    下面的代码是实现一个nginx监控日志功能,是不是很好玩呢.

  10. 容器云平台使用体验:数人云Crane(续)

    数人云在9月6日开通了容器管理面板Crane的试用活动,这是国内首个基于DockerSwarmKit的容器管理工具.它具有Docker原生编排功能,采用轻量化架构,帮助开发者快速搭建DevOps环境, ...