a
分別記錄紙幣剩餘數量判斷是否能找零,因為資料比較弱所以對於5+5+5的情況沒考慮也過了。
b#includeusing namespace std;
int main()
else
}else
else}}
if(flag) printf("true");
return 0;
}
因為一次只能搬一塊或者兩塊磚頭,所以對於n塊磚頭的情況,只需要知道n-1和n-2塊磚頭有多少種方法,累加即可。dp[i]表示搬i塊磚頭有多少種方法,遞推後輸出dp[n]
c#includeusing namespace std;
int maxn=1e5+5;
int main()
printf("%d",dp[n]);
}return 0;
}
按照題意模擬即可,我給定了迴圈次數最多num=100。
d#includeusing namespace std;
int maxn=1e5+5;
int main()
n=temp;
if(temp==1)
}if(flag)
printf("yes");
else
printf("no");
return 0;
}
dfs寫完發現資料很大,果斷超時了,先給出超時**,後面再改。
e#includeusing namespace std;
typedef long long ll;
int maxn=1e6+5;
const int mod=1e9+7;
int n,a[105],num=1;
ll dfs(int x,int y,int p)
int main()
ll temp=0;
for(int i=1;i<=a[1];i++)
printf("%lld",temp);
}
f#includeusing namespace std;
int maxn=1e5+5;
const int mod=1e9+7;
int main()
// printf("%d\n",num);
memset(dp,0,sizeof(dp));
for(int i=1;i<=num-1;i++)
}printf("%d",dp[n]);
return 0;
}
這題用到了動態規劃的思想,dp[i][j]表示i個篩子擲出j點有多少種可能,那麼我們考慮dp[i][j]是如何得到的。我們在擲出第i個篩子的時候會有六種情況,分別對應1~6點,那麼得出轉移方程
這裡得出了每種點數的可能方案數,但是我們求的是概率所以還要求出總的可能數,這個很簡單就是6^n。
那麼輸出即可。
#includeusing namespace std;
typedef long long ll;
int maxn=1e4+5;
const int mod=1e9+7;
int quick_pow(int a,int b)
return ans;
}int main()
}int temp=quick_pow(6,n);
for(int i=n;i<=6*n;i++)
}
c c 演算法刷題筆記 自測模考 2018
前言 今天做了2018年的上機真題,雖簡單,但除第一題以外其他三題並不無腦。第二道被卡住超過半小時,主要原因 對 string 的操作還不夠熟悉,簡單認知,但不能熟練靈活利用。問題描述 近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。簡化後的跳一跳規則如下 玩家每次從當前方塊跳到下乙個方塊,如果...
程設十三周
問題描述 這一天,tt 遇到了乙個神秘人。神秘人給了兩個數字,分別表示 n 和 k,並要求 tt 給出 k 個奇偶性相同的正整數,使得其和等於 n。例如 n 10,k 3,答案可以為 4 2 4 tt 覺得這個任務太簡單了,不願意做,你能幫他完成嗎?本題是spj input 第一行乙個整數 t,表示...
程設 神奇的MyAny
總時間限制 1000ms 記憶體限制 65536kb 描述編寫 myany類以及,myany cast模版 可能多個 使得程式按要求輸出 要求myany類必須要有析構函式,在析構函式以及其他適當的地方 比如複製建構函式,過載的賦值號 要釋放動態分配的空間,不能造成記憶體碎片。include incl...