九度OJ
seen_in_hw
希望我能变厉害!!!成为大师!!!我放弃了很多看似很炫的技术而去探寻技术的本质,技术是用来提供服务的,所有的技术都离不开思想,而思想是最难掌握的,我们应该把更多的精力放在对于思想的探寻上
展开
-
【ACM】:ACM集训队论文合集
国家集训队论文分类整理距离ACM/ICPC的时间越来越少了,选择性地看一些集训队论文是很有必要的。(在此给已经看过所有论文的神牛跪了= =)所以,我在此整理了一下,供大家参考。组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》200转载 2016-07-11 14:47:15 · 1886 阅读 · 0 评论 -
【九度OJ】:九度OJ 1056
好吧,我还是犯了老问题,没有break而是return了,直接导致了我的错误。。。直接撸代码:#include <iostream>#include <string>#include <cmath>using namespace std;int main(){ int num1,num2; while(cin>>num1>>num2){ if(num1>num2原创 2016-07-07 19:43:10 · 435 阅读 · 0 评论 -
【九度OJ】:1058
有毒的一个题,也不知道这个想要考什么。。。总之非常简单。。。C++咋的都过不了,最后换成C语言给AC了。。。代码:#include<stdlib.h> #include<stdio.h> int main() { char a[5]; int i; while(scanf("%s",a)!=EOF) { for(i=st原创 2016-07-07 20:19:03 · 502 阅读 · 0 评论 -
【九度OJ】:九度OJ 1059
一个很简单的计算 通过公式 12c+110b+100a = 532来进行计算。。。直接撸代码:#include <iostream>using namespace std;int main(){ for(int a=1;a<=9;a++){ for(int b=1;b<=9;b++){ int c = (532-100*a-110*b);原创 2016-07-07 20:29:17 · 677 阅读 · 0 评论 -
【九度OJ】:九度OJ 1206
两个字符串一加就完事。。。#include <iostream>#include <string>using namespace std;int main(){ string s1,s2; while(cin>>s1>>s2){ cout<<s1+s2<<endl; } return 0;}原创 2016-07-07 20:56:07 · 644 阅读 · 0 评论 -
[九度OJ]: 1039 Zero-complexity Transposition
这道题很简单,就是问一个很长的数组如何反序输出。 通过代码如下:注意申明是长数组型 还有一种方法用String数组存储也可以#include <iostream>using namespace std;int main(){ int n; while (cin >> n){ long long int a[10000]; for (int i原创 2017-03-21 21:24:29 · 408 阅读 · 0 评论 -
【九度OJ】:1510 替换空格
大水题方法多种 1,找两个字符串吃空格 2,打印,找到空格就打印成默认的“%20“,其他的都单字符打印 #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int i;原创 2017-03-21 21:44:47 · 402 阅读 · 0 评论 -
【九度OJ】:从头打印链表
先建立链表然后利用递归打印#include <iostream>using namespace std;typedef int TYPE;struct Node{ TYPE num; Node *next;public: Node(int num_) :num(num_), next(NULL){};};Node *pbegin = new Node(0);Nod原创 2017-03-21 22:10:57 · 421 阅读 · 0 评论 -
九度OJ 1512 用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1接下来的n行,每行输入一个队列操作:1. PUSH X 向队列中push一个整数x(x>=0)2. POP 从队列中pop一个数。输出:对应每个测试案例,打印所有pop操作中从队转载 2017-03-21 22:20:08 · 301 阅读 · 0 评论 -
计算十进制数转化为2进制数之后中1的个数
方法有很多,大致记两个1,拿最后一位对比,然后移位2,利用n&=(n-1) 这种黑科技的方法进行统计,这种循环次数能够统计出十进制数转化为2进制数之后其中1的个数问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道转载 2017-03-21 22:40:06 · 5117 阅读 · 0 评论 -
【九度OJ】:1515
不超时,很简单,直接上代码即可#include <stdio.h>void printOneToNBit(int N) { int number = 1; int i,j; for(i = 1;i <= N;i++) { number = 10 * number; } // 输出[1,10^N - 1] for(j = 1;j < numb原创 2017-03-21 22:49:46 · 399 阅读 · 0 评论 -
【九度OJ】:链表中倒数第K个节点
思路: 1,建链表 2,用双链表,将其中一个先循环到K位置,此时将第一个和第二个同时往后走,当第一个链表结束时第二个链表刚好到链表中的第K个节点AC代码如下:#include <stdio.h>#include <stdlib.h>typedef struct node{ int number; struct node * next;}Node;int getK(Node原创 2017-03-22 16:58:01 · 390 阅读 · 0 评论 -
【基础知识】:链表反序打印
这个问题见的多了,一般用递归实现呗 非常的简单 递归的伪代码大致为: 1,写出递归结束条件 2,开始递归调用 3,打印比如说一个简单的打印代码就如下:int ReversePrintList(Node *link){ if (link->next == NULL) return 0; ReversePrintList(link->next); cou原创 2017-03-22 17:12:39 · 361 阅读 · 0 评论 -
【九度OJ】:1055 字符串反序
很简单,找到字符串最后一个,将字符串反向打印即可#include <string>using namespace std;int main(){ string s; while(cin>>s){ for(int i=s.length()-1;i>=0;i--){ cout<<s[i]; } cout<<endl;原创 2016-07-07 19:34:56 · 377 阅读 · 0 评论 -
【九度OJ】:九度OJ 1053
非常逗比兼简单,一次AC#include <iostream>using namespace std;int main(){ int n,num[201]; while(cin>>n){ int max=0,min = 999999999,max_pos =0,min_pos=0; //调换的时候也需要调换pos for(int i=0;i<n;i原创 2016-07-07 17:24:43 · 455 阅读 · 0 评论 -
【ACM】:菜鸟,大牛跟教主的区别
对菜鸟来说题目有三种:会算法且能AC的,会算法但不能AC的,不会做的对大牛来说题目有两种:会做的,不会做的对教主来说题目有两种:能AC的,数据有错的菜鸟提交WA了,找了N久找不出错时,在论坛大骂数据有错,但是没人理大牛提交WA了,找了N久找不出错时,写暴力程序或者求别人的AC程序对拍教主提交WA了,Judge马上修正数据菜鸟面对一道难题,直接暴搜大牛面对一道难题,算了算时间复杂度不对,或者证明出是N原创 2016-07-11 14:52:07 · 546 阅读 · 0 评论 -
【九度OJ】:1526 并查集 朋友圈问题
假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友…),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4、5属于另一个朋友圈,结果为2个朋友圈。原创 2016-07-12 20:34:59 · 467 阅读 · 0 评论 -
【九度OJ】:1000记录a+b
思路: 非常简单,用while(cin>>a>>b)这一条就能实现输入的过程#include <iostream>using namespace std;int main(){ int a,b; while(cin>>a>>b){ cout<<a+b<<endl; } return 0;}原创 2016-07-07 11:19:06 · 740 阅读 · 0 评论 -
【九度OJ】:1003
题意: 题目的意思就是给出一行字符串,解析成两个数,并且计算和思路: 通过空格分隔一行字符串,通过逗号来取出字符串里面的数,最后计算和即可,还有一项是关于-号的问题,设置一个flag即可AC代码:#include <iostream>#include <string>using namespace std;int getdata(string s){ int num = 0;原创 2016-07-07 11:37:52 · 442 阅读 · 0 评论 -
【九度OJ】:1010
题意:通俗一点来说就是将字符串解析成数字并且求和思路:跟上一题一样,需要先解析成两个字符串数,然后求和,方法用到了String类的assign函数,其他的就是将字符串对应到数字上去,这种算法很简单,这里就不细讲了AC代码:#include <iostream>#include <string>using namespace std;int getnum(string s){ if(s=原创 2016-07-07 11:42:16 · 425 阅读 · 0 评论 -
【九度OJ】:1045 百鸡问题
题目很简单,就是一个二重循环就可以搞定的事格式上注意要用while(cin>>n)AC代码:#include <iostream>using namespace std;int main(){ float x,y,z,n; while(cin>>n){ for(x=0;x*5<=n;x++){ for(y=0;y*3<=n;y++){原创 2016-07-07 12:11:01 · 571 阅读 · 0 评论 -
【九度OJ】: 1046 哈尔滨工业大学研究生复试题
不想说啥了,10个数找最大数,这是什么鬼AC代码:#include <iostream>using namespace std;int main(){ float num[11],max; while(cin>>num[1]>>num[2]>>num[3]>>num[4]>>num[5]>>num[6]>>num[7]>>num[8]>>num[9]>>num[10]){原创 2016-07-07 12:15:58 · 521 阅读 · 0 评论 -
【九度OJ】:1047 素数
哈工大研究生复试题。。。醉了,真他妈水。。。就是判断一个数是不是素数。。。AC代码:#include <iostream>using namespace std;bool IS(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ return false; } } return原创 2016-07-07 12:24:06 · 481 阅读 · 0 评论 -
【九度OJ】:1048 判断三角形类型
对于这个问题,很简单,利用余弦定理即可啦~直接撸上AC代码:#include <iostream>using namespace std;int main(){ int a,b,c; while(cin>>a>>b>>c){ if(a*a+b*b==c*c ||a*a+c*c ==b*b||a*a ==b*b+c*c){ cout<<"直角原创 2016-07-07 12:30:20 · 562 阅读 · 0 评论 -
【九度OJ】:1049 去掉字符串问题
直接撸代码: #include<stdio.h> #include<string.h> int main() { char str[1024]; char c; while(scanf("%s",str)!=EOF) { getchar();原创 2016-07-07 12:49:01 · 405 阅读 · 0 评论 -
【九度OJ】:九度OJ 1050
PE我也不知道为什么,想到了一个非常绝妙的方法来控制最后不输出空格,通过标志变量,啊哈哈哈哈,真是非常的巧妙PE代码:#include <iostream>#include <string>using namespace std;bool IsWan(int num){ if(num==1) return false; int sum = 0; for(int i=1;原创 2016-07-07 13:08:33 · 439 阅读 · 0 评论 -
【九度OJ】: 1052
这个题我居然错在了 return 0,提前返回导致结果错误这一点上来了。。。直接给代码吧#include <iostream>using namespace std;int main(){ int n,sum[201],x; while(cin>>n){ int flag = 1; for(int i=0;i<n;i++){原创 2016-07-07 17:17:08 · 448 阅读 · 0 评论 -
数组中出现超过一半的数字
题目1370:数组中出现次数超过一半的数字时间限制:1 秒内存限制:32 兆特殊判题:否提交:3397解决:994 题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 输入: 每个测试案例包括2行: 第一行输入一个整数n(1<=n<=100原创 2017-03-22 17:38:58 · 601 阅读 · 0 评论